IE7错误 - 浮动:左子浮动:右父

时间:2013-10-02 16:48:39

标签: html css internet-explorer-7 css-float

我有一个奇怪的问题(仅限ie7),其中右浮动元素的左浮动子元素不会被约束到其父元素的宽度,而是一直向父母父元素的最左侧移动并停在最近的左浮动div。您可以参考以下小提琴,例如代码。在所有其他浏览器中看起来很好,但不幸的是我必须支持ie7。

有没有办法解决这个问题而不在两个浮动子项的父级上设置显式宽度而不更改标记结构?

http://jsfiddle.net/s89XZ/

下面附带小提琴的代码:

    <style>
        .wrapper{
            position: relative;
            width: 500px;
            min-height: 18px;
            margin: 0 auto;
            padding: 14px 0;
            background-color: red;
        }
        .menu_L{
            color: #504A43;
            height: 18px;
            float: left;
            width: 100px;
            background-color: blue;
        }
        .menu_R_wrapper{
            float: right;
        }
        .menu_R{
            position: relative;
            float: right;
        }
        .menu_R .item_L,
        .menu_R .item_R{
            width: 50px;
            height: 18px;
        }
        .menu_R .item_L{
            float: left;
            background-color: orange;
        }
        .menu_R .item_R{
            float: right;
            background-color: green;
        }
    </style>
    <div class="wrapper">
        <div class="menu_L"></div>
        <div class="menu_R_wrapper">
            <div class="menu_R">
                <div class="item_L"></div>
                <div class="item_R"></div>
            </div>
        </div>
    </div>

1 个答案:

答案 0 :(得分:1)

你要在那些较小的IE中设置浮动父级的宽度:请参阅http://jsfiddle.net/s89XZ/1/这个宽度的添加位置(这里应该是100px但是105px更能表明它的工作原理):

.menu_R {
    width: 105px;
}