2010-07-23 40 views
8

问题的演示就在这里。为什么Chrome在我的CSS3多列布局中切断文本?

http://www.vcn.bc.ca/~dugan/css3/newhtml.html

的多列布局CSS3正确显示在Firefox。 Opera和IE8将它显示为一列(这很好)。但是,Chrome会尝试将其显示为多列,并且会将部分文字截断。

有什么办法可以使它与Chrome一起工作?

+0

Windows中的Safari也会中断(以同样的方式)。 – 2010-07-23 22:58:54

+0

这可能是一个Web字体问题?我已经看到了铬+网页字体的其他奇怪行为,这似乎与铬的计算线高度有关。 – claesv 2016-02-29 09:38:21

回答

2

似乎在dugan.css中的p规则上设置行高为1.5时显示所有文本。 Chrome浏览器平衡列的方式似乎仍存在缺陷,您可能需要在最后一段中添加空白段落或添加一些填充内容。

19

调整行高(或字体大小,建议其他地方)可能会删除Chrome的剪报错误,但只是意外。如果你想避免它编程,现在唯一的工作解决方法是:

.multicolumn p { 
    display: inline-block; 
} 

你可能会扩展为多光柱容器的所有子元素,但可能你需要在某个时候加width: 100%;。欲了解更多信息,请阅读 http://www.symphonious.net/2010/12/30/controlling-wrapping-in-css3-columns/http://zomigi.com/blog/deal-breaker-problems-with-css3-multi-columns/的讨论。

此外,如果内联块解决方法无效,则截断文本位的原因可以由多列设计的递归应用程序组成。我在比上述更复杂的场景中观察到了这个情况,其中多列文本容器的远程父级具有其自己的列布局。从顶级容器中移除列计数可修复列中断问题。

+0

这应该是正确的答案。 – biko 2015-10-15 00:26:15

+0

这是解决此问题的最佳答案。 – zgood 2015-12-21 17:36:39

+0

这对我有用!列中的一个没有。 – 2017-10-04 17:43:15

6
body{ 
    -webkit-column-break-inside:avoid; 
} 
+0

这解决了我的问题。 – maurice 2015-09-30 19:12:12

+0

这是正确的方法。 – undefined 2016-09-29 22:37:56

1

在某些情况下,我看到填充和栏位内容的边距会导致此问题。尝试:

.columnized-content { margin: 0; padding: 0; } 
+0

此外,你可以尝试{box-sizing:border-box;}如果你想保留填充 – 2015-01-20 19:04:43

相关问题