将Google Chrome更新为最新版本后,我的HTML文档中的所有标签都会出现不需要的分页符。看看这个小提琴:http://jsfiddle.net/hc9avcd3/
它应该是这样的(从旧版本的chrome屏幕截图):
虽然灰色div有width: 100%
且标签有width: auto
,但这就是它在chrome上的外观(从新版Chrome浏览器中截屏):
ltr
和英文标签没有问题。
表和<p>
元素也存在此问题。
我该如何解决问题?每次打开文档时,我都会收到ERR_CACHE_MISS
错误。
我没有启用扩展程序或加载项。
答案 0 :(得分:1)
这似乎是Chrome中布局算法中的浮动元素中从右到左文本的错误。这并不取决于direction
设置;如果您删除direction: rtl
,则文字仍会包含在Chrome中。阿拉伯字母的固有方向性仍然导致从右到左的布局,这使得Chrome将文本划分为两行,即使它恰好适合一行。
问题可以简化为只有p
元素浮动的简单案例:
body {
font-size: 14px;
font-family: Tahoma, Geneva, sans-serif;
}
p {
float: right;
}
&#13;
<p>
سلام سلام سلام سلام سلام سلام سلام
</p>
&#13;
在其他浏览器中,文字显示在一行上。在Chrome中,它会被拆分。神秘的是,这取决于字体大小。如果您将其更改为15px
,则不会拆分文本。
要规避错误,请不要使用浮动。在给定的情况下,将div
元素的内容设置为右对齐可能就足够了:
body {
margin: 0px;
font-size: 14px;
font-family: Tahoma, Geneva, sans-serif;
}
div {
padding: 5px;
text-align: right;
background-color: #E7E7E7;
}
&#13;
<div>
<label>سلام سلام سلام سلام سلام سلام سلام</label>
</div>
&#13;
答案 1 :(得分:0)
奇怪。不确定为什么使用最新版本的Chrome对非英文字符执行此操作,但设置width: inherit;
可以解决问题。