使用内联时省略像素 "width"

Omitting pixel when using inline "width"

有点愚蠢的问题,但对我来说很重要。据我所知,在 HTML 中使用内联 "width" 属性时,允许省略 "px" - - 将自动理解为 "20px" 除非 percentage("20%")用来。我的问题是:即使不需要,使用“..px”是否错误?代码对我来说似乎更清晰,它遵循与 CSS 相同的规则,至少但不是最后 - 无论何时我看它都不会打扰我。 提前致谢。

这在 HTML 4 或更早的规范中从未明确说明,但所有支持 width 和相关表示属性的 HTML DTD 不会对 %Pixels 值——它们只是在散文中声明它们应该是整数,但在 DTD 中定义为 CDATA:

<!ENTITY % Length "CDATA" -- nn for pixels or nn% for percentage length -->
<!ENTITY % Pixels "CDATA" -- integer representing length in pixels -->

所以,从技术上讲,这并没有错误,事实上你可以放任何你想要的东西并且

  1. 它仍然会根据 HTML 4 DOCTYPE 进行验证;和
  2. 浏览器会简单地将属性值解析为整数或百分比。

以下所有项在功能上都是等效的,生成的表格宽度为 200 CSS 个像素(因为 none 个值可以解析为百分比):

<table border="1" width="200"><tr><td><code>width="200"</code></table>
<table border="1" width="200px"><tr><td><code>width="200px"</code></table>
<table border="1" width="200abcd"><tr><td><code>width="200abcd"</code></table>
<table border="1" width="200x10px"><tr><td><code>width="200x10px"</code></table>