1.3.2 宽松的约定
HTML5语法是为了保证与HTML4语法达到最大程度的兼容而设计的。
1.标记省略
在HTML5中,元素的标记可以分为三种类型:不允许写结束标记、可以省略结束标记、开始标记和结束标记可以全部省略。下面简单介绍这三种类型各包括哪些HTML5元素。
(1)不允许写结束标记的元素有:area、base、br、col、command、embed、hr、img、input、keygen、link、meta、param、source、track、wbr。
(2)可以省略结束标记的元素有:li、dt、dd、p、rt、rp、optgroup、option、colgroup、thead、tbody、tfoot、tr、td、th。
(3)开始标记和结束标记可以全部省略的元素有:html、head、body、colgroup、tbody。
提示:不允许写结束标记的元素是指不允许使用开始标记与结束标记将元素括起来的形式,只允许使用<元素/>的形式进行书写。例如:
错误的书写方式如下。
<br></br>
正确的书写方式如下。
<br/>
HTML5之前的版本中<br>这种写法可以继续沿用。
开始标记和结束标记可以全部省略的元素是指元素可以完全被省略。注意,该元素还是会以隐式的方式存在的。例如,将body元素省略时,它在文档结构中还是存在的,可以使用document.body进行访问。
2.布尔值
对于布尔型属性,如disabled与readonly等,当只写属性而不指定属性值时,表示属性值为true;如果属性值为false,可以不使用该属性。另外,要想将属性值设定为true,可以将属性名设定为属性值,或将空字符串设定为属性值。
【示例1】下面是几种正确的书写方法。
<!--只写属性,不写属性值,代表属性为true--> <input type="checkbox" checked> <!--不写属性,代表属性为false--> <input type="checkbox"> <!--属性值=属性名,代表属性为true--> <input type="checkbox" checked="checked"> <!--属性值=空字符串,代表属性为true--> <input type="checkbox" checked="">
3.属性值
属性值可以加双引号,也可以加单引号。HTML5在此基础上做了一些改进,当属性值不包括空字符串、<、>、=、单引号、双引号等字符时,属性值两边的引号可以省略。
【示例2】下面的写法都是合法的。
<input type="text"> <input type='text'> <input type=text>