为什么他们弃用预格式化文本的width属性?

时间:2010-08-03 17:33:13

标签: html deprecated

width的{​​{1}}属性定义了每行的最大字符长度,在HTML 4.01中已弃用,我不再在HTML5的当前草稿中看到它。我无法在W3C WG for HTML的邮件列表中找到它背后的原因(可能我搜错了),虽然4.01的规格说它并不是所有客户都支持。

  1. 一个可能的答案:包装预先格式化的文本是没有意义的。这是真的吗?
  2. 如果我仍然希望它包裹后例如30个字符。除了脚本,我该如何实现?

4 个答案:

答案 0 :(得分:2)

不推荐使用演示文稿定义属性以支持CSS。您不应该依赖sizewidthheight属性,而是在执行标记时关注语义。 (虽然一个例外可能是用于预加载渲染的img元素。)

答案 1 :(得分:1)

嗯,首先,您需要将内容演示文稿分开,而在<pre>的情况下,宽度纯粹是表示性的。此外,正如您所指出的那样,包装预先格式化的文本毫无意义。如果您真的想要,可以在CSS中执行此操作:

pre {
    width: 30em;
    white-space: pre-wrap;
}

答案 2 :(得分:0)

HTML用于定义文档的结构,而不是用于样式化。还有一个名为width的类似CSS属性。

答案 3 :(得分:0)

不是一个确凿的答案,但看起来它已被弃用,因为它从未得到适当的支持(并且因为它是一个表现性的问题,因此不是HTML应该包含的内容)....

看看它提到in the HTML 4.01 spec,它提到它没有被广泛支持,并且它习惯于“选择合适的字体大小或适当缩进” - 这听起来与“定义字符数”相差甚远每行“。

这些旧的HTML元素/属性消失的正常原因是它们与CSS更好地与HTML对齐 - HTML应该只是内容,而不是呈现。