当使用CSS overflow:hidden时,我经常发现最后一行文本被部分截断。有没有办法防止这种情况,以便任何部分线条不显示。几乎像一个垂直的自动换行。
答案 0 :(得分:12)
您可以使用包装器div和多列css:
.wrapper {
-webkit-column-width: 150px; //You can't use 100%
column-width: 150px;
height: 100%;
}
解决方案示例: http://jsfiddle.net/4Fpq2/9/
更新2017-09-21
在Firefox中,此解决方案仍可正常运行,但在Chrome中已损坏。最近Chrome开始按小部件打破列,如果设置高度,也会停止打破内容。 在这个http://jsfiddle.net/4Fpq2/446/示例中,我将hight更改为max-height并显示奇怪的Chrome行为。 如果您有想法,请写下评论。
更新2019-03-25
基本上,它甚至可以用于Chrome,但你应该至少有两行。对于具有一定量可见文本的块,这种方法仍然可以正常工作。
答案 1 :(得分:5)
一旦你理解了column-width
的工作方式,@ stalkerg的回答就很有意义。
column-width将内容拆分为列,因此文本的最后一行不适合,它将移动到下一列。现在的诀窍是使列宽与容器一样宽。容器有溢出:隐藏,因此第二列不会显示。
.box {
width: 200px;
}
.container {
-webkit-column-width: 200vw;
-moz-column-width: 200vw;
column-width: 200vw;
height: 100%;
}
答案 2 :(得分:2)
此解决方案对我有用:https://stackoverflow.com/a/17413577/2540428 基本上用适当的填充创建一个包装器div,并将内容放在主div中,在那里编辑它的高度并隐藏溢出。有关详细信息,请参阅链接。
答案 3 :(得分:1)
对我有用:
.wrapper_container{
width: 300px;
height: 200px;
overflow: hidden;
}
.wrapper{
-webkit-column-width: 300px;
column-width: 300px;
height: 100%;
}
答案 4 :(得分:0)
Rob是正确的。我正在创建一个最大高度为11em的div,最后一行溢出文本只有一半。 white-space:nowrap只是消除了最后一行。
我试过
white-space: nowrap;
和Gaby也是正确的,这也会导致问题。
我想出的最好的方法是摆弄线高和div高度,直到最少的线被切断
答案 5 :(得分:0)
只需添加列宽属性并设置容器的宽度,它就可以工作。
答案 6 :(得分:0)
只需使用边框而不是填充。
答案 7 :(得分:-1)
存在两个css3属性。 1)断言& 2)word-arap
不要忘记这些是css3的新属性。因此旧版浏览器不支持此类属性。
.class-name {word-break: break-all;}
.class-name {word-wrap: break-word;}