我使用pre的“width”属性来控制每行的最大字数。在Firefox中它执行正常,但在Chrome中“宽度”属性不起作用。我不知道为什么。
例如:width = 70
答案 0 :(得分:2)
width
的{{1}}属性最初在HTML 2.0中定义如下:“WIDTH属性指定一行的最大字符数,并允许HTML用户代理选择合适的字体和缩进。“所以它并不意味着改变pre
的基本含义(保留空格和换行符,没有添加包装)。这保留在较新的规范中,但未在浏览器中实现。
Firefox会将pre
视为指示文本换行后的字符限制。其他浏览器会忽略它。
要指定换行,请在CSS中设置width
并设置width
(在合理的新浏览器中广泛支持)。但问问自己:如果你不想要white-space: pre-wrap
的基本效果(按原样保留格式),你应该使用其他元素吗?
您无法在CSS中设置pre
字符,但使用ch
unit可以很好地支持浏览器,如果字体是等宽字体(这是width
的默认设置)。对于旧版浏览器,您可以使用pre
单元,对要使用的字体中的字符宽度进行粗略猜测。例如:
em
如果您希望根据pre {
white-space: pre-wrap;
width: 40em;
width: 70ch;
}
的原始想法减少字体大小,请在<pre width=...>
元素上设置font-size
。
答案 1 :(得分:1)
width = number [CN]
已过时。此属性向可视用户代理提供有关格式化块的所需宽度的提示。用户代理可以使用此信息来选择适当的字体大小或适当缩进内容。所需宽度以字符数表示。 目前尚未广泛支持此属性。
HTML 5将该属性标记为obsolete并说:
以下属性已过时(尽管元素仍然是语言的一部分),作者不得使用
...
前元素的宽度
如果要控制宽度,请在CSS中执行此操作。不幸的是,您不能在字符中指定它。