在30.04.13上编辑的:IE10似乎摆脱了描述的行为,我们现在能看到这种行为的唯一浏览器是火狐
我希望一个div (.side)就在内联块(.wrap)中浮动,我希望另一个div (.content)包含带有文本溢出的长非包装字符串:在溢出的情况下省略。另外,.wrap不应该比它的容器更宽,所以它有最大宽度: 100%.
当.content中的内容宽度加上.side的宽度足够宽到比.wrap容器更宽时,.content中的内容应该会溢出。
当.content中的内容宽度加上.side的宽度小于.wrap容器的宽度时,则.content中不存在溢出,.wrap只应取.content和.side之和的宽度。似乎是这样,但在火狐和IE10中并非如此。在这两个浏览器中,.wrap的宽度与最宽的内部div一样宽。但我预计.wrap会尊重.side和.content的宽度。
您可以在这里看到这种行为:http://jsbin.com/evamik/1/,只要使浏览器窗口足够宽,您就会看到石灰色div (.content)中存在文本溢出。如果要关闭.content上隐藏的溢出:您将看到,.wrap的宽度等于.content的宽度,而.side的宽度则被忽略。
那么如何强制.wrap同时尊重.side和.content的宽度?
HTML:
<div class="wrap">
<div class="side">
side
</div>
<div class="content">
nonwrappnonwrappingnonwrappingnonwrappingnonwrapping
</div>
<div class="clear"></div>
</div>CSS:
.wrap {
background: lime;
display: inline-block;
max-width: 100%;
}
.side {
float: right;
background: orange;
}
.content {
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
.clear {
clear: both;
}示例url:http://jsbin.com/evamik/1/
发布于 2013-04-30 07:02:44
我被这个问题弄糊涂了。在Windows7上,jsbin示例在IE10中似乎具有所需的行为。(也就是说,.content div在窗口太窄而不能显示整行时使用省略号,而.side总是正确地以右浮动的方式显示,如果窗口允许显示所有文本,则.wrap父div与子div相匹配;当窗口窄到足以导致文本溢出时,.wrapdiv具有100%的宽度。)
在overflow:hidden; div上关闭.content会导致丑陋的行为,因为没有它,text-overflow:ellipsis;就没有作用,但是white-space:no-wrap;迫使文本保持在一条不间断的线上。
注意,text-overflow:ellipsis;只在同时使用white-space:no-wrap;和overflow:hidden;时才能工作。这意味着不能对多行文本使用省略号。见文本溢出的MDN CSS引用。
如果要确保文本包装而不是使用带有省略号的一行,则可以删除white-space:no-wrap;和overflow:hidden;,然后添加word-wrap:break-word;,这将打破长单词,以适应狭小的空格。见用于单词包装的MDN CSS引用。
https://stackoverflow.com/questions/14174071
复制相似问题