一个不溢出的div

时间:2011-12-12 02:43:18

标签: css

我有一个div,可以保存一些文字。 div的宽度以像素为单位。我想确保如果文本占用的空间比div中的一行多,则文本不会溢出并且不会换行到第二行。我只想让它显示在一行上适合div的宽度。我一直在试验

{
    overflow:hidden;
    height:1em;
    width:160px; 
}

它有时会起作用,但我没有合适的高度。什么是正确的高度?可能有更好的方法来做到这一点。请告诉我。谢谢!

感谢大家的贡献。这对我有用: 为div:

{
    height:1.2em;
    text-overflow:ellipsis;
    overflow:hidden;
    white-space:nowrap;
}

请注意,text-overflow:ellipsis;white-space:nowrap;都需要在那里显示省略号。

对于跨度音符,跨度没有宽度,因此您需要添加:

{
    display:inline-block;
    width:160px;
}

让跨度工作

4 个答案:

答案 0 :(得分:2)

overflow:hidden;
height:1em;
width:160px;
text-overflow: ellipsis;
line-height: 1em;

如果文本溢出了封闭的div并将div设置为仅使用容器的高度1em,则会向文本添加省略号。

答案 1 :(得分:2)

white-space: no-wrap会阻止文本的换行。

答案 2 :(得分:1)

设置段落的行高,然后将div高度设置为相同。 请注意,文本通常高于1 em,1.3或1.4通常更好。

在此处试试:http://jsfiddle.net/PYA3y/

#mydiv{
    overflow:hidden;
    height:1.4em;
    width:160px; 
}
#mydiv p{line-height:1.4em;}

修改:

在我写回复的时候,你得到了另外3个答案! Scott有一个使用省略号的好主意,我已经更新了JSFiddle以包含它(虽然它不起作用??)

如果我理解正确,设置空白区域将无法获得您需要的结果......您确实希望隐藏额外的文本,不是吗?

答案 3 :(得分:1)

{
    white-space:nowrap;
    overflow:hidden;
    height:1em;
    width:160px; 
}