我正在使用CSS多栏布局来显示文本。布局在Firefox中显示正确。但是Chrome有一个错误,它会 * 剪切/剪切掉文本字符的顶部和底部 *。为什么会发生这种情况?我如何才能使它在Chrome中工作?
以下是问题的屏幕截图:
第一个
最后,这里是一个网页,我试图让它工作:http://www.vcn.bc.ca/~dugan/css3/newhtml.html
我正在使用CSS多栏布局来显示文本。布局在Firefox中显示正确。但是Chrome有一个错误,它会 * 剪切/剪切掉文本字符的顶部和底部 *。为什么会发生这种情况?我如何才能使它在Chrome中工作?
以下是问题的屏幕截图:
第一个
最后,这里是一个网页,我试图让它工作:http://www.vcn.bc.ca/~dugan/css3/newhtml.html
7条答案
按热度按时间xkftehaa1#
调整行高(或字体大小,如其他地方推荐的)可能会消除Chrome的裁剪缺陷,但只是偶然的。如果你想通过编程来避免它,目前唯一有效的解决方案是:
您可以将其扩展到多列容器的所有子元素,但可能需要在某些时候添加
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/上的讨论。此外,如果内联块解决方案没有帮助,截断文本位的原因可能是多列设计的递归应用。我在比上面更复杂的场景中观察到了这一点,其中多列文本容器的远程父容器有自己的列布局。从顶级容器中删除列计数修复了列中断问题。
yfjy0ee72#
7vux5j2d3#
MDN有解决这个问题的例子。
vm0i2vca4#
如果你在dugan.css中的p规则上设置了1.5的行高,似乎会显示所有的文本。Chrome平衡列的方式似乎仍然存在缺陷,你可能需要在最后一段放一个空段落或添加一些填充或其他东西。
pxq42qpu5#
在某些情况下,我发现分栏内容中的填充和边距会导致此问题。请尝试:
huwehgph6#
我想它更像是chrome中的一个bug。在我的例子中,清除:两个都被设置到框中。取消设置并给出box-sizing:border-box;帮我解决了。
drkbr07n7#
在要切断的元素上设置
break-inside: avoid
。这不仅适用于文本,也适用于div等。