65.9K
CodeProject 正在变化。 阅读更多。
Home

HTML5/CSS3 初学者指南 - 第 1 部分(共 12 部分)

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.83/5 (33投票s)

2014年3月25日

CPOL

11分钟阅读

viewsIcon

73375

downloadIcon

880

编写你的第一个 HTML 代码

系列文章列表

  1. 编写你的第一个代码
  2. 构建基础
  3. 为你的第一个网页添加样式
  4. 布局你的第一个网页

简史

HTML - 超文本标记语言

HTML 诞生于 1989 年,当时它被设计成用于新创建的万维网的发布语言。它采用了所有标记语言的方法,这些语言起源于经典的纸质出版,编辑们在那里“标记”手稿以进行修订。那时,HTML 并不是一个严格的定义,而更多的是关于如何在网络上传输和链接信息的想法。

在 90 年代早期,每个人都对网络产生了兴趣。不同的用户代理(用户代理是用于在特定设备上呈现 HTML 文档内容的软件,今天我们大多用“浏览器”来指代用户代理,我从现在开始也会这样做)随着 HTML 思想的略微不同实现而诞生(ENQUIRENeXTHyperCard)。

随着兴趣的增长,网络的早期发明者正在寻找一种商定的标准化 HTML 方法。为了实现这一目标,第一个 HTML 标准(HTML+)于 1993 年创建。它基于众所周知的SGML。然而,HTML 虽然基于 SGML,但它并非(!)在所有方面都符合 SGML。

1994 年是 HTML 方面繁忙的一年。那一年在日内瓦举行了第一次万维网会议。会议期间,讨论了更新 HTML 标准的必要性。作为回应,ITEF 成立了一个工作组,开始流传即将发布的 HTML 2 的草案。同年,W3C 成立,代表那些投票支持开放标准的开发者群体。在各方的共同努力下,HTML 2 于 1995 年问世。HTML 2 奠定了我们今天所知的 HTML 的基础。

随着网络的巨大普及,1995年,浏览器制造商的权力日益增长。这以及ITEF工作组中成员数量极其庞大,促使标准化过程进行了重组。在W3C的协调和管理下,一个由浏览器公司代表和网络关键人物组成的新小组诞生了。这种决策模式至今仍在W3C的标准化过程中使用。由于这些变化,HTML 3标准的制定被放弃,并在两年后重新制定——HTML 3.2于1997年发布。

在浏览器大战期间,W3C 不断更新 HTML,并于 1999 年末发布了 HTML 4 标准。

这些标准的强大和成功可以从 HTML 4 和 HTML 5 之间的时间间隔看出——HTML 5 的第一个草案直到 2008 年才发布!HTML 5 旨在取代所有以前的版本(其中 HTML 2 及更早版本被声明为已弃用),同时提供完全的向后兼容性。

HTML 5 标准的当前状态是“候选推荐”(于 2014 年 2 月发布)——根据作者的说法,它将是成为“推荐”之前的最后一个版本…

尽管我们不会在本文中见到 HTML 5 的真面目,但重要的是要理解 HTML 5 不仅仅是超文本标准的新版本,它还是 W3C 为将网络开发提升到新水平所做所有努力的全球名称。它不仅包括 HTML 本身,还包括 CSS 3 和大量的 JavaScript 库。这种方法背后的主要思想是将浏览器提升到一个水平,使其能够开发出可以与桌面应用程序竞争的网络应用程序,而无需不同的(非标准)插件。

CSS - 层叠样式表

在开发 HTML 2 时,关注点分离的问题出现了。答案是 1996 年的 CSS 1。由于新的决策制定方式已经到位,W3C 能够在很短的时间内定义 CSS 1,而后续版本则花费了与 HTML 几乎相同的时间……CSS 2 于 1998 年,即 HTML 3.2 发布一年后发布。此版本经历了多次更新,直到 2011 年成为 CSS 2.1。这些更新的原因是用于显示网页的设备种类日益增多。

W3C 大约在 1999 年开始着手 CSS 3,但对于这个版本,他们采取了不同的方法。W3C 没有创建单一规范,而是将 CSS 分解成多个部分,并为每个部分单独定义推荐。W3C 还采取了一个前所未有的步骤,在 2005 年召回了所有已批准的推荐,进行第二次审查,并再次将其标记为“工作草案”。这样做是为了确保推荐的质量。

如今,CSS 3 的所有部分(超过 20 个)中,只有 7 个获得了“推荐”状态。

HTML 和 CSS 的用途是什么?

HTML 是一种标记语言,它使用标签(通常成对的开标签和闭标签)来实现“标记”部分。这些标签用于定义信息的内容(有时也定义布局)。理论上,HTML 可以用于几乎所有类型的内容,但实际上它几乎只用于——并成为了——网页的标准。

任何 HTML 标签的伪声明应如下所示

<tag-name [attribute-list]>[tag-content][</tag-name>]

例如,要将文本的一部分声明为段落,我们使用 P 标签,如下所示

<p>This is a paragraph about nothing.</p>

在我们的 HTML 文档中插入图像时,我们使用 IMG 标签

<img src="my_image.png" alt="It's me!"> 

对于每个标签,都有一个声明解释其使用方式。它是否可以、必须或不能有闭合标签。它是否可以、必须或不能使用属性等等。有关 HTML 标签及其使用方法的完整列表,请参阅:HTML 参考 - w3schools.com

CSS 用于定义与其关联的 HTML 页面的外观(有时也包括布局)。通过 CSS,您可以定义内容(由包含的 HTML 标签标识)将如何呈现给最终用户。CSS 文件由分配给 HTML 标签的规则列表组成,这些规则使用选择器(这些选择器旨在识别一个或多个 HTML 标签)。由于 CSS 独立于内容(HTML),因此可以轻松地为不同的设备提供不同的格式。

CSS 规则可以这样定义

selector {
  attribute-name: attribute-value [attribute-value [...]]; 
  [attribute-name: attribute-value [attribute-value [...]];] 
}

例如,Google Chrome 中 H2 标签的默认 CSS 声明如下所示

h2 {  
  display: block;
  font-size: 1.5em;
  -webkit-margin-before: 0.83em;
  -webkit-margin-after: 0.83em;
  -webkit-margin-start: 0px;
  -webkit-margin-end: 0px;
  font-weight: bold;
}

重要的是要明白,在现代浏览器中,CSS 总是存在的。即使您不指定自己的 CSS(在本文中您也不会),浏览器也会提供一组基本规则,为每个 HTML 文档实现一些基本格式。

现在您可能会问,如何更改那些已经定义的样式呢?CSS 规则是根据优先级方案解释的,默认情况下,对于相同的选择器,新规则会覆盖旧规则。因此,由于第一个 CSS 是浏览器的,而您的所有规则都在其之后,所以您的规则能够改变默认设计。

要获取更多关于 CSS 的信息,您可以从这里开始:CSS3 简介

布局问题…有时也会发生

在 HTML 的早期阶段(HTML 2 - 3.2),大多数布局都是使用 HTML TABLE 标签定义的(因为 HTML 是对设计一无所知的开发者的游乐场)。TABLE 标签能够将页面分解成不对称的区域,并制造出真实布局的假象。然而,这种混合关注点的方式并不令 W3C(以及新兴的设计师大军)满意,该组织推动使用 CSS 进行布局,尤其是在 CSS 2 问世之后。

我们将在后续文章中讨论这一点,但目前,您只需记住正确的布局方式是使用 CSS 而不是表格。

你需要什么?

对于简单的 HTML,您只需要一个文本编辑器(vim、记事本)和一个网络浏览器(IE、FF、Chrome)。然而,如今 HTML 很少单独用于真正的开发。它总是与一些 JavaScript 和某种服务器端技术(如 PHP 或 ASP.NET)配对使用。对于更复杂的开发,建议使用一些 IDE(适合您选择的环境)。此类工具的部分列表(由 CodeProject 成员编译)可以在这里找到:您的开发工具

如果您选择某种 IDE 进行开发,该 IDE 将帮助并指导您如何存储和查看您的页面。但是,如果您选择简单的文本编辑器作为 HTML 开发的第一步,请记住:将 HTML 文件保存为 HTML 扩展名,将 CSS 文件保存为 CSS 扩展名。这将使您能够通过任何浏览器自动打开它们。

基础 HTML

HTML 不仅识别其标签的含义,还强制执行基本结构。最小的 HTML 页面必须包含文档类型声明、headbodyHead 反过来又必须包含 title 声明。

<!DOCTYPE html>
<html>
    <head>
        <title>Title of the document</title>
    </head>
    <body>
    </body>
</html>

这段代码代表一个有效的,但完全无用的 HTML。它无用因为它什么都不显示。现在让我们添加有价值的内容。

<!DOCTYPE html>
<html>
    <head>
        <title>Title of the document</title>
    </head>
    <body>
        <h1>Introduction</h1>
        <h2>The first decade</h2>
        <p>History of the first decade...</p>
        <h2>Later years</h2>
        <p>What happened later...</p>
        <h1>Why we doing it?</h1>
        <p>Some explanation...</p>
        <p>Extended explanation...</p>
        <h1>Summary</h1>
        <p>Summary...</p>
        <h1>Contact details<h1>
        <h2>Support</h2>
        <p>123-123456789</p>
        <h2>Development</h2>
        <p>123-123456789</p>
    </body>
</html>

上面的代码在 Google Chrome 浏览器中渲染此页面。

我们使用的标签...

现在我们将解释我们在前面的简单 HTML 示例中使用的基本标签。

DOCTYPE

DOCTYPE 是文档类型声明的缩写。它用作版本戳,告诉浏览器如何解释后续的 HTML 内容,并且它将始终是您代码的第一行。对于 HTML 5,它始终是 <!DOCTYPE html>。早期版本的 HTML 使用一些更复杂的其他字符串,您不需要了解它们,因为您现在只会使用 HTML 5!

<!DOCTYPE html>

HTML

HTML 标签是任何 HTML 文档的主要容器(根)。所有 HTML 文档(DOCTYPE 除外)都必须包含在 HTML 的开始标签和结束标签之间。在 HTML 标签内部,文档组织成两个强制性标签 HEADBODY

<!DOCTYPE html>
<html>
</html>

HEAD

HEAD 标签是一个分组标签,包含所有所谓的“head 元素”。这些元素用于定义关于文档的信息。它可能包括元数据(例如,用于搜索引擎)、指向外部资源的链接(例如,CSS 文件)等。唯一强制性的“head 元素”是 TITLE 标签,它用于定义 HTML 文档的 title

<!DOCTYPE html>
<html>
  <head>
  </head>
</html>

标题

TITLE 标签是强制性的,你必须有一个且只能有一个。没有它,HTML 文档将无效。它将包含一个人类可读的 字符串,作为浏览器和搜索引擎的文档标题。

<!DOCTYPE html>
<html>
  <head>
    <title></title>
  </head>
</html>

主体

BODY 是任何 HTML 文档的第二部分。它是用于定义 HTML 文档内容(“body 元素”)的所有标签的容器。令人惊讶的是,BODY 不是强制性的,并且在提供时可以完全为空。我相信 W3C 没有将其设为强制性,因为创建一个空的 HTML 文档没有多大意义,所以没有人会无缘无故地省略它,但如果他有充分的理由,它可以省略。然而,当它出现时,它必须是第二个元素——在 HEAD 之后——在 HTML 标签内部。

<!DOCTYPE html>
<html>
  <head>
    <title></title>
  </head>
  <body>
  </body>
</html>

标题

BODY 可以包含多个标签来标记内容,在这些标签中,标题标签用于创建标题,换句话说,为 HTML 文档内容创建标题级别(就像本文中一样)。标题由标签 H1H6 表示,其中 H1 代表最重要的标题,H6 代表次重要的标题。

<!DOCTYPE html>
<html>
  <head>
    <title></title>
  </head>
  <body>
    <h1></h1>
    <h2></h2>
?  </body>
</html>

段落

段落是所有文本内容的主要构成部分。它用于将文本分解成可读的块。在 HTML 文档中,段落是使用 P 标签创建的。

<!DOCTYPE html>
<html>
  <head>
    <title></title>
  </head>
  <body>
    <h1></h1>
    <h2></h2>
    <p></p>
    <p></p>
?  </body>
</html>

示例代码

文章顶部的 zip 文件中的代码包含文章本身的 HTML 和 CSS。它主要使用我文章中谈到的那些标签。继续深入研究吧...

您可能还会注意到,当我解释标签的作用时,我添加了一个指向 w3schools.com 中相应页面的链接。这些链接可以为您提供有关该标签的更多信息。

摘要

我敢肯定您读完这一部分后会有更多问题而不是答案,但请耐心等待,请记住这只是十二篇文章中的第一篇,希望您最终能得到所有您需要的答案。

© . All rights reserved.