代码之家  ›  专栏  ›  技术社区  ›  syockit

为什么他们不预测预格式化文本的宽度属性?

  •  1
  • syockit  · 技术社区  · 14 年前

    这个 width 属性为 <pre> 它定义了每行的最大字符长度,在HTML4.01中被否决了,我在HTML5的当前草稿中不再看到它。我在W3C的wg for html邮件列表中找不到它背后的原因(可能我搜索错误),尽管4.01的规范说它在所有客户机中都不受支持。

    1. 一个可能的答案是:包装预先格式化的文本是没有意义的。这是真的吗?
    2. 以防我仍然希望它在后面换行,例如30个字符。除了脚本,我如何实现这一点?
    4 回复  |  直到 14 年前
        1
  •  0
  •   STW    14 年前

    不是一个结论性的答案,但看起来它被否决了,因为它从来没有得到适当的支持(而且因为它是一个表示性的问题,因此不是HTML真正应该包含的内容)。

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

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

        2
  •  2
  •   meder omuraliev    14 年前

    为了支持CSS,不推荐使用表示性定义属性。你不应该依赖 size , width , height 属性,但在做标记时,重点放在语义上。(尽管有一个例外可能是 img 用于预加载渲染的元素)。

        3
  •  1
  •   You    14 年前

    嗯,首先,你想分开 内容 演示 以及 <pre> ,宽度纯粹代表性。此外,正如您指出的,包装预先格式化的文本毫无意义。如果您真的想:

    pre {
        width: 30em;
        white-space: pre-wrap;
    }
    
        4
  •  0
  •   Daniel O'Hara    14 年前

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