本节书摘来自异步社区《HTML5和CSS3快速参考》一书中的第2章,第2.1节,作者: 【美】Sergey Mavrody 更多章节内容可以访问云栖社区“异步社区”公众号查看。
第2章 HTML语法
2.1HTML文档
基本概念
通常情况下,HTML文档指的是一份独立的HTML文件。
- HTML文档是一份由一定的元素和文本组成的代码文件。
- HTML文件的基本构件是元素(element)。它们以HTML标签的形式呈现。
- 这些元素构成了一个层次分明的嵌套结构。
元素与标签
通常情况下,元素是由一个开标签(opening tag,如本例中的
元素与标签之间的不同在于,元素是HTML标签所要表述的概念,其中包括相关的属性和子节点标签。具体元素待我们介绍到第3章、第4章这两章时再做详细介绍。
<!DOCTYPE html>
<html>
<head>
<title>HTML5 Reference </title>
<!-- This is a comment. It does not render in browser -->
</head>
<body>
<h1>Overview</h1>
<p>The well-known acronym
HTML stands for HyperText Markup Language.</p>
</body>
</html>
标签的嵌套
一个标签通常用一个小于号(<)和一个大于号(>)来表示。
被嵌套的标签一定完全存在于另一对的内部,两者不会交叉重叠。
The <b><em>wrong</b></em> nesting
The <b><em>correct</em></b> nesting
空元素
空元素(void element)通常只有一个开标签,不包含任何内容。因此,我们可以选择将它的终止斜线放在元素标签末端的大于号前面。当然,这对于非空元素(non-void element)来说是非法的。
<!--Void elements:-->
<img src=logo.gif><br />
<input type=text>
属性
在这个例子中,元素input拥有多个属性。它们分别为type、autofocus、name。
<input type=text autofocus
name=’first name’>
- 属性实际上就是其所在元素的成员属性。
- 属性通常被放置在元素的开标签中。
- 标签名与属性之间用空格符分隔。
- 属性通常由一个类型名和一段文本值组成,之间用等号(=)分隔。
- 在同一标签内,属性是不可重复的。
- 在HTML5中,属性值中如果没有空格、引号和不等号的话,是可以采用无引号形式的,如type=text;否则就必须给该属性值加上单引号或双引号,如'first name'。
布尔属性
所谓布尔属性,实际上就是指那些值非false即true的属性。
- 如果一个布尔属性在元素中未被声明,其默认值就为“false”。
<! --boolean value is false:
the field is NOT disabled -->
<input>
- 如果一个布尔属性在元素中被显式声明,其默认值就为“true”。
- 布尔属性可以引用自身为值,例如
<input disabled=disabled>。
<!--boolean value is true-->
<input disabled=disabled>
<input disabled=”disabled”>
在支持多种语言的HTML/XHTML文档中,在给一个值为true的布尔属性引用自身属性名赋值时,需加上一对引号,例如。
<input disabled=””>
<input disabled>
在不支持多语言环境的HTML文档中,该值可以直接省略掉,例如< input disabled >。