# XHTML代码规范

- Link: https://yjyj.net/learn/3899.html
- Published: 2006-03-30T12:30:43+08:00
- Author: 小 虾

⚡ 生猛大蝦编辑部 · 30 秒核心看点

 * XHTML 不是“更严格的 HTML”，而是必须闭合、必须小写的规范化写法。
 * 标签嵌套要一层一层对称，像 p 和 b 这种顺序错了就不合格。
 * 属性值统一加引号，单独标签用自闭合写法，能少踩很多解析坑。

1.所有的标记都必须要有一个相应的结束标记
 以前在html中，你可以打开许多标签，例如

和

  而不一定写对应的
  和
  来关闭它们。但在xhtml中这是不合法的。xhtml要求有严谨的结构，所有标签必须关闭。
  如果是单独不成对的标签，在标签最后加一个”/”来关闭它。例如:
      ```decode:true
      <br /><img height="80" alt="网页设计师" src="../images/logo_w3cn_200x80.gif" width="200" />
      ```
  
  2.所有标签的元素和属性的名字都必须使用小写
      ```decode:true
      与html不一样，xhtml对大小写是敏感的，<title>和<title>是不同的标签。
      xhtml要求所有的标签和属性的名字都必须使用小写。
      例如：<body>必须写成<body>。
      大小写夹杂也是不被认可的，通常dreamweaver自动生成的属性名字"onmouseover"也必须修改成"onmouseover"。
      ```
  
  3.所有的xml标记都必须合理嵌套
   同样因为xhtml要求有严谨的结构，因此所有的嵌套都
  必须按顺序，以前我们这样写的代码：
      ```decode:true
      <p><b></p>/b>
      ```
  
  必须修改为：
      ```decode:true
      <p><b></b>/p>
      ```
  
  就是说，一层一层的嵌套必须是严格对称。
  4.所有的属性必须用引号””括起来
   在html中，你可以不需要给属性值加引号，但是在xhtml
  中，它们必须被加引号。例如:
      ```decode:true
      <height=80>
      ```
  
  必须修改为：
      ```decode:true
      <height="80">
      ```
  
  特殊情况，你需要在属性值里使用双引号，你可以用”，单引号可以使用'，例如：
      ```decode:true
      <alt="say&apos;hello&apos;">
      ```
  
  5.把所有<和&特殊符号用编码表示
      ```decode:true
      任何小于号（<），不是标签的一部分，都必须被编码为& l t ;
      任何大于号（>），不是标签的一部分，都必须被编码为& g t ;
      任何与号（&），不是实体的一部分的，都必须被编码为& a m p;
      ```
  
  注：以上字符之间无空格。
  6.给所有属性赋一个值
   xhtml规定所有属性都必须有一个值，没有值的就重复本身。例如：
      ```decode:true
      <td nowrap> <input type="checkbox" name="shirt" value="medium" checked>
      ```
  
  必须修改为:
      ```decode:true
      <td nowrap="nowrap"> <input type="checkbox" name="shirt" value="medium" checked="checked">
      ```
  
  7.不要在注释内容中使“–”
   “–”只能发生在xhtml注释的开头和结束，也就是说，在内容中
  它们不再有效。例如下面的代码是无效的:
      ```decode:true
      <!--这里是注释-----------这里是注释-->
      ```
  
  用等号或者空格替换内部的虚线。
      ```decode:true
      <!--这里是注释============这里是注释-->
      ```
  
  以上这些规范有的看上去比较奇怪，但这一切都是为了使我们的代码有一个统一、唯一的
  标准，便于以后的数据再利用。
  ❓ 延伸问答与排错指南（FAQ）
  XHTML 和 HTML 最大的区别是什么？
  核心区别是 XHTML 更强调 XML 式严谨结构：所有标签都要闭合，标签和属性名必须小写，
  嵌套顺序不能乱，属性值必须加引号。写法更规范，解析也更严格，适合追求标准化的页
  面结构。
  XHTML 里自闭合标签怎么写？
  像 br、img 这类不成对的标签，在 XHTML 中要写成自闭合形式，例如 、。这样能明确告诉
  解析器该标签已经结束，避免结构歧义。
  为什么 XHTML 要求属性值必须加引号？
  因为 XHTML 采用更严格的语法规则，属性值不加引号容易造成解析歧义。统一写成双引号
  最稳妥；如果属性值里需要双引号，可改用单引号或按规范转义，保证文档可被正确解析。
  📚 【[招数学习](https://yjyj.net/category/learn)】专栏延伸阅读与热门精选（[全站文章归档](https://yjyj.net/archive)）：
   * [head区的其他设置](https://yjyj.net/learn/3898.html)
   * [准备把都开心的模板重新搞一下](https://yjyj.net/learn/3897.html)
   * [CSS布局入门技术](https://yjyj.net/learn/3900.html)
   * [css布局实例](https://yjyj.net/learn/3901.html)
   * 热门必读[程序员漫游指南](https://yjyj.net/what/5830.html)
   * 热门必读[升级一下iptables](https://yjyj.net/learn/centos/3208.html)
