触发“块格式化上下文”时,浮动元素在Chrome / Firefox中的呈现方式不同

时间:2014-08-06 08:00:22

标签: css google-chrome firefox

Chrome和Firefox正在以不同方式呈现浮动div,我无法找到解决方案。

Chrome (左侧窗口):当坐在蓝色方块旁边时,div会扩展为适合整个字符串“123456”

Firefox (右侧窗口):div会切断部分字符串

Chrome (left), Firefox (right) 演示http://jsfiddle.net/A8zLY/83/

作为参考,我正在使用一种技术来触发此处描述的BFC“块格式化上下文”:Expand a div to take the remaining width

该技术允许div元素(红色文本)在沿着静态宽度元素(蓝色方块)放置时填充容器的剩余宽度


HTML

<div class="module1">
    <div class="container left">
        <div class="icon"></div>
        <div class="text">123456</div>
    </div>
    <div class="container left">
        <div class="icon"></div>
        <div class="text">123</div>
    </div>
</div>
<div class="module2">
    <div class="container right">
        <div class="icon"></div>
        <div class="text">123456</div>
    </div>
     <div class="container right">
         <div class="icon"></div>
        <div class="text">123</div>
    </div>
</div>

CSS

.icon {
    width: 50px;
    height: 50px;
    background: blue;
}
.text {
    height: 50px;
    font-size: 40px;
    line-height: 50px;
    background: red;    
}
.left .icon { float: left; }
.left .text {
    width: auto;
    overflow: auto;
}
.right .icon { float: right; }
.right .text {
    width: auto;
    overflow: auto;
}

.module1, .module2 {
    position: absolute;
    top: 0;
    border: 4px solid black;
}
.module1 { left: 0; }
.module2 { right: 0; }
.container { margin: 4px; }

1 个答案:

答案 0 :(得分:2)

尝试将左/右边距设置为.icon.left .text类的.right .text宽度:

.left .text {
    width: auto;
    overflow: auto;
    margin-left: 50px;
}
.right .text {
    width: auto;
    overflow: auto;
    margin-right: 50px;
}

http://jsfiddle.net/xN43L/