繁体   English   中英

使用float将div与父div的左右边缘对齐

[英]Align divs to left and right edges of parent div using float

我希望#first#container左边对齐,右边#second
为此,我正在使用float: left; #firstfloat: right; #second
然而,这导致#first对齐#container左边和#second紧挨着它。 为什么会这样,我怎样才能实现我的愿望呢?

这就是我要的:

在此输入图像描述

这就是我得到的:

在此输入图像描述

这是我的代码:

 <head> <style> #container { width: 500px; margin: 0 auto; border: 1px solid #000; } #first { float: left; } #second { float: right: } </style> </head> <body> <div id="container"> <div id="first"> <p>first</p> </div> <div id="second"> <p>second</p> </div> </div> </body> 

好吧。 无需为包含浮点数创建:after -property,只需使用overflow: hidden; 在容器上。

 <head> <style> #container { width: 500px; margin: 0 auto; border: 1px solid #000; overflow: hidden; } #first { float: left; } #second { float: right; } </style> </head> <body> <div id="container"> <div id="first"> <p>first</p> </div> <div id="second"> <p>second</p> </div> </div> </body> 

有两件事是错的。 首先,你有一个冒号而不是分号附近:

#second {
    float: right: // <- change ':' to ';'
}

修复之后你必须清除内容,因为两个div(#first和#second)都是浮动的,导致容器的高度为0。 您可以使用以下样式实现此目的:

#container:after {
    display: table;
    clear: both;
    content: "";
}

看演示:

 #container { width: 500px; margin: 0 auto; border: 1px solid #000; } #container:after { display: table; clear: both; content: ""; } #first { float: left; } #second { float: right; } 
 <div id="container"> <div id="first"> <p>first</p> </div> <div id="second"> <p>second</p> </div> </div> 

假设#container相对定位,我们可以这样做以获得您想要的结果:

    #container {
        width: 500px;
        margin: 0 auto;
        border: 1px solid #000;
    }

    #first {
        position:absolute;
        left:0;
        height:100%;
    }

    #second {
        position:absolute;
        right:0;
        height:100%;
    }

你当前的css不工作,因为float:right和float:left只是确定DOM元素如何与兄弟姐妹互动; 不是他们的父母。 如果你想让#first和#second的子节点不填充父div,你也可以将它们的height属性更改为你想要的任何东西。

令人惊讶的是,这也有时可以解决问题。

#container {
  width: 500px;
  margin: 0 auto;
  border: 1px solid #000;
}

#first {
  float: right;
}

#second {
  float: right:
}

<body>
    <div id="container">
        <div id="first">
            <p>goes right</p>
        </div>
        <div id="second">
            <p>goes left</p>
        </div>
    </div>
</body>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM