如何限制元素的最小和最大宽度?
我有一行文本,我想在其周围绘制边框。目前,标记如下所示:
<div id="titleBox"><span id="titleName" class="truncate">Really really long long long title name</span></div>
样式如下所示:
#titleBox{
margin-top: 10px;
}
#titleName{
margin: 5px;
height: 1.6em;
width: auto;
max-width: 15.385em;
padding: 0.369em;
margin: 0.369em;
line-height: 1.7;
color: rgba(0,0,0,0.4);
background-color: rgba(204,204,204,0.4);
border: 3px solid rgba(255,255,255,0.14);
font-size: 153.9%;
-moz-border-radius: 5px;
-webkit-border-radius: 5px;
}
.truncate {
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
-ms-text-overflow: ellipsis;
-o-text-overflow: ellipsis;
-moz-binding: url('../templates/ellipsis.xml#ellipsis');
}
我想要的效果是,我希望样式框为文本的宽度,除非宽度超过一定限制。然后我希望宽度受到限制,然后截断类应该启动。
仅使用 div 的问题是框不会换行到文本的宽度。使用跨度会有所帮助,但它不会显示为块。强制它显示为块会出现与将其包装在普通 div 中相同的问题。使用 div/span 组合也不起作用,因为如果文本太长,span 会忽略 div 的边界。
有没有办法限制文本的宽度,强制其截断并在文本周围有一个样式框?
I have a line of text that I want to draw borders around. At the moment, the markup looks like this:
<div id="titleBox"><span id="titleName" class="truncate">Really really long long long title name</span></div>
The style looks like this:
#titleBox{
margin-top: 10px;
}
#titleName{
margin: 5px;
height: 1.6em;
width: auto;
max-width: 15.385em;
padding: 0.369em;
margin: 0.369em;
line-height: 1.7;
color: rgba(0,0,0,0.4);
background-color: rgba(204,204,204,0.4);
border: 3px solid rgba(255,255,255,0.14);
font-size: 153.9%;
-moz-border-radius: 5px;
-webkit-border-radius: 5px;
}
.truncate {
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
-ms-text-overflow: ellipsis;
-o-text-overflow: ellipsis;
-moz-binding: url('../templates/ellipsis.xml#ellipsis');
}
The effect that I'd like is that I'd like the styled box to be the width of the text, unless the width exceeds a certain limit. Then I would want the width to be limited and then the truncate class should kick in.
The problem with only using a div is that the box doesn't wrap to the width of the text. Using a span helps but then it doesn't display as a block. Forcing it to display as a block exhibits the same problem as wrapping it in a plain div. Using a div/span combination doesn't work either because the span ignores the boundaries of the div if the text is too long.
Is there a way to limit the width of the text, forcing it to truncate and have a styled box surrounding the text?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
根据我的评论,
display:inline-block
应该能达到预期的效果。但它在As per my comment,
display:inline-block
should give the desired effect. it won't work in <IE6 though.