在容器中居中 2 个 div(向左、向右浮动)

Posted

技术标签:

【中文标题】在容器中居中 2 个 div(向左、向右浮动)【英文标题】:Center 2 divs(Floating lef,right) in a container 【发布时间】:2013-05-01 23:05:03 【问题描述】:

我尝试了在这个网站上找到的多种方法,但似乎没有任何帮助。

我试图在一个宽度为 100% 的容器中将左右浮动的 2 个 div 居中。

CSS 片段:

#body-container 
    background: none;
    height: 100%;
    width: 100%;
    margin: 0 auto;


    #body-inner 
    float: left;
    width: 550px;
    left: 325px;
    margin: 0 auto;
    background: none;
    padding-top: 3%;
    padding-left: 10px;
    padding-right: 10px;
    border-left: 1px solid #000000;
    border-right: 1px solid #000000;


#bodybox 
    margin: 0 auto;
    width: 200px;
    height: 100%;
    right: 325px;
    background: none;
    font-size: 10px;
    font-family:Arial, Helvetica, sans-serif;   

【问题讨论】:

也提供 html 代码,以便清楚您在做什么。 我在这里看不到任何float: right 指令。请提供代码和小提琴 right: 325px on #bodybox 与您的代码当前一样。 【参考方案1】:

Could this be what you're looking for? Click here...

如果我理解您的问题,您正在尝试将<div> 居中,该<div> 还有两个<div> 父母...

代码片段:

#body-container 
    background: none;
    height: 100%;
    width: 100%;
    /*margin: 0 auto;*/

    /* testing border and height, could be deleted */
    border: solid;
    height: 500px;

#body-inner     
    width: 550px;
    margin: 0 auto;
    background: none;
    padding-top: 3%;
    padding-left: 10px;
    padding-right: 10px;
    /*border-left: 1px solid #000000;
    border-right: 1px solid #000000;*/

    /* testing border and height, could be deleted */
    border: solid;
    height: 400px;

#bodybox 
    margin: 0 auto;
    width: 200px;
    height: 100%;
    /*right: 325px;*/
    background: none;
    font-size: 10px;
    font-family:Arial, Helvetica, sans-serif;

    /* testing border and height, could be deleted */
    border: solid;
    height: 400px;

【讨论】:

【参考方案2】:

您需要对浮动的工作原理进行一些研究,因为我认为您的想法是错误的。浮动一个div 左一个右,没有办法将它们居中,因​​为它们是浮动的。 leftright 属性不起作用,除非元素被定位(绝对的、固定的或具有某些含义的相对)。此外,您似乎正试图让#bodybox 的右边缘与#body-inner 的左边缘对齐。这不起作用,因为right 属性是从屏幕的右边缘而不是左边缘计算的。此外,您将固定框尺寸与流体容器宽度混合。这很好,如果你考虑到它们碰撞时会发生什么。

如果您只是想将两个 <div> 并排对齐,并在页面上居中。在这种情况下,inline-block 可能是您的朋友。关于空白、字体大小、内容顺序等有很多影响和解决方法,但基本上你会这样做:

#body-container 
    width: 100%;
    text-align: center;

#body-inner 
    width: 550px;

#bodybox 
    width: 200px;

在上面,只要容器足够宽,两个<div>就会并排放置,一旦容器太小,它们就会一个接一个地显示,每个都位于容器的中心。

【讨论】:

以上是关于在容器中居中 2 个 div(向左、向右浮动)的主要内容,如果未能解决你的问题,请参考以下文章

在向左浮动的 div 中垂直居中图像

向右浮动是向左浮动?

CSS:向右浮动 div 导致容器 div 在 IE 中拉伸整个屏幕宽度

如何在 div 中居中输入 [重复]

CSS的浮动和清除

请问:在css+div中,父容器宽度自适应,里面的子容器居右显示(向右浮动),怎么实现?谢谢!