如何在未浮动的div中浮动div

  • 本文关键字:div css html styles
  • 更新时间 :
  • 英文 :


我有一个关于div的简单问题。如何在一个未浮动的DIV中浮动3个DIV?

这是我的代码:

<div style="margin:0 auto;width:1240px;border:1px solid #000000;">
    <div style="width:200px;height:50px;float:left;border:1px solid #000000;">
        test    
    </div>
    <div style="width:200px;height:50px;float:left;border:1px solid #000000;">
        test    
    </div>
    <div style="width:200px;height:50px;float:left;border:1px solid #000000;">
        test    
    </div>
</div>

我想在这个父DIV中浮动子DIV,或者在不浮动的情况下使它们居中。。。display:inline块不适用于子div,因为它们具有不同的高度,并且一个div是一个图像。。。所以我认为最好的方法是浮动它们并优化利润。。。在这种情况下,我希望父div在屏幕上居中,所以我使用margin:0auto而不是float,但这导致子div没有拉伸父div,而是显示为一条细线。

你可以测试我创建的小提琴来理解问题:http://jsfiddle.net/tQpM5/

感谢

如果我理解正确,你想在同一行居中放置3个盒子:

.wrapper{
  margin:0 auto;
  text-align:center;
  vertical-align: top;
}
.box{
  width:200px;
  height:50px;
  display:inline-block;
  text-align:left;
}

HTML:

<div class="wrapper">
  <div class="box"> 1 </div>
  <div class="box"> 2 </div>
  <div class="box"> 3 </div>
</div>

演示

由于所有子div的宽度都小于父div的宽度,因此它们应该自然地并排排列。试着给每个子div一个位置:relative;边距:自动。通过这种方式,它们应该以父为中心

父div显示为一行,因为其内容是浮动的,并将其高度设置为1px。要解决此问题,您需要清除此元素之后的浮动。通常被称为clearfix。

.clearfix:after {
  clear: both;
  content: "";
  display: table;
}

然后你可以像往常一样让孩子们漂浮起来。我在父对象上使用了margin:auto使其居中。

查看此演示:

http://jsfiddle.net/c2NjZ/

关于clearfixing上旧浏览器支持的注意事项,请参阅:

http://css-tricks.com/snippets/css/clear-fix/

容器div的float和它的子div的floast值(或无float)是相互独立的,您只需要在关闭父div之前清除子div的:

<style type="text/css">
.clearfloat {clear:both;height:0;font-size:1px;line-height:0px;}
</style>
<div class="parent">
    <div class="child" style="float:left;">
        Hi
    </div>
    <div class="child" style="float:right;">
        There
    </div>
    <br class="clearfloat">
</div>

更新到您的示例:http://jsfiddle.net/tQpM5/2/

您需要的是给父div:overflow:hidden;,这样它就可以包含其子div。

子div将彼此浮动,但是当您调整浏览器大小时,它们将彼此浮动在一起,为了避免这种情况,您可以给父div一个min-width

要使父div居中,可以给它一个margin-left:auto; margin-right:auto;,但必须指定一个宽度,这样它就不会拉伸并占用所有可用宽度。

既然您选择使用float而不是inline-block,那么剩下的就是像您所说的那样处理margins

演示

相关内容

  • 没有找到相关文章

最新更新