【发布时间】:2015-09-13 04:32:05
【问题描述】:
我有一个 300 像素宽的容器,里面有两个弯曲的 div。
第二个是 100px 宽,另一个应该占用剩余空间。
当我在第一个 div 中放置比剩余 200px 宽的文本时,它会溢出,当文本溢出时,我可以使用 overflow: hidden 和 text-overflow: ellipsis 添加 ...。
当我在第一个 div 中放置 h1 标签并添加 overflow 和 text-overflow 应该会产生相同的效果。
它确实(在 Chrome 中),但在 IE 和 Firefox 中,div 变大并且省略号不起作用。
当我删除额外的 h1 层并相应地更新 css 时,所描述的行为按预期工作。
或者看看我的JSFiddle
body{
display: flex;
}
#container{
display: flex;
flex-basis: 300px;
overflow: hidden;
}
#content{
display: block;
height: 300px;
background-color: red;
flex-grow: 1;
flex-shrink: 1;
}
h1, h2{
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
#menu{
display: flex;
flex-grow: 0;
height: 300px;
background-color: blue;
flex-shrink: 0;
}
<div id="container">
<div id="content">
<h1>HEADER1 HEADER1 HEADER1 HEADER1 HEADER1 HEADER1 HEADER1<h1>
</div>
<div id="menu">xcvcxcxvcvxcvzxczxczgd</div>
</div>
【问题讨论】:
-
在我的 chrome 中它是并排的,但在 ie 中它在顶部你认为它与问题有关你解决了吗?
-
其实还不算过分。在 FF 和 IE 中,蓝色条实际上是 0px 宽。省略号不起作用,因为 h1 实际上没有溢出,容器正在溢出(溢出隐藏)。只有 Chrome 遵守容器的设置弹性基础和菜单的弹性增长。无论
flex-shrink: 0如何,FF 和 IE 都会缩小菜单 -
为什么不以 % 为单位设置宽度??
-
更新了jsFiddle 如果这对你有用,记得对浮动元素使用clearfix
-
@Enrico 感谢您的提琴,但是我被禁止使用浮点数(要求)。另外我不使用百分比,因为在我的完整应用程序中,菜单是固定的像素,内容应该占据左边的宽度。
标签: html css internet-explorer firefox flexbox