防止文本溢出HTML中的填充容器

dis*_*cer 16 html css html5 css3

我有这种情况:

<div style="width: 100px; padding: 5px 15px 5px">Some text longer than 100px</div>
Run Code Online (Sandbox Code Playgroud)

如果我设置溢出:隐藏在div上,文本仍然会出现在右边的15px填充区域之外:

++----------------------------+------+
++----------------------------+------+
||This text should stop here -| but i|
++----------------------------+------+
++----------------------------+------+
Run Code Online (Sandbox Code Playgroud)

可以在不添加额外元素来保存文本的情况下完成此操作.任何浏览器中的任何解决方案都可以,我只是想知道它是否可行.

Jok*_*rfr 30

您可以使用透明边框来制作所需的边距.它不会溢出:

div {
    white-space: nowrap;
    overflow: hidden;
    max-width: 300px;
    border-left:1em solid transparent;
    border-right:1em solid transparent;
    text-overflow: ellipsis;
}
Run Code Online (Sandbox Code Playgroud)

  • 谢谢@Jokesterfr.使用透明边框而不是填充就可以了.即使是多行文字.谢谢!http://jsbin.com/kisoti/edit?html,css,output (3认同)

hel*_*rld 16

你试过了吗:

word-wrap:break-word;
Run Code Online (Sandbox Code Playgroud)

到达结束时,它会自动将单词分隔到下一行.


Log*_*aul 0

嘿,我不知道你的具体要求,有一种方法可以使用 css3 ellipsis 属性截断文本。

例子

a) 正常情况

+-------------------------++
some text which is exceeding the container
+-------------------------++
Run Code Online (Sandbox Code Playgroud)

b) 实施省略号后

+-------------------------++
some text which is exceed...
+-------------------------++
Run Code Online (Sandbox Code Playgroud)

这是参考链接: https: //developer.mozilla.org/En/CSS/Text-overflow,其中也有浏览器支持信息。

希望这可以帮助!

  • 这根本不能解决问题。他知道如何截断文本;他的问题是截断的字符串溢出填充并且仅在框的边缘被切断。他希望它在填充区域的边缘被截断。 (6认同)