代码之家  ›  专栏  ›  技术社区  ›  SilentDev

如何使用边距将容器居中:自动

  •  1
  • SilentDev  · 技术社区  · 11 年前

    由于某种原因, margin:auto 不起作用。

    HTML格式

    <body>
        <div id="background">
            <div id="header">
                <div id="title">Welcome</div>
            </div>
        </div>
    </body>
    

    CSS格式

    #background {
        min-width: 960px;
    }
    
    #title {
        display: block;
        margin: auto;
        background-color: blue;
    }
    

    这只是在屏幕顶部画了一条蓝线,左边有“欢迎”字样。为什么我的 边距:自动 工作

    2 回复  |  直到 11 年前
        1
  •  1
  •   Josh Crozier Dan    11 年前

    通过边距水平居中的正确语法是: margin: 0px auto; 因为这将把左边距和右边距设置为自动。如果使用此方法,则需要在其上设置宽度,因为默认情况下宽度为100%。

    或者,您也可以使用 text-align:center 如果你只是把文本居中。

    Working jsFiddle 使用 文本对齐:居中 .

    Alternative jsFiddle.. 我不知道你想达到什么样的风格。

        2
  •  1
  •   Marc Audet    11 年前

    这个 #title div将展开以填充其父项, #header ,依次扩展以填充其自己的父对象, #background ,其宽度至少为960px。

    因此 #所有权 如果是全宽,则居中,默认情况下,文本左对齐(至少在西欧语言中是这样)。

    如果你想要 #所有权 要进行收缩以适应宽度,你可以尝试 display: inline-block .

    到中心 #所有权 水平方向,添加 text-align: center 到其父容器, #收割台 .

    例如:

    #background {
        min-width: 960px;
    }
    #header {
        text-align: center;
    }
    #title {
        display: inline-block;
        background-color: beige;
    }
    

    或者,您可以使用 display: table :

    .ex2 #header {
        text-align: left;
    }
    .ex2 #title {
        display: table;
        margin: 0 auto;
        background-color: beige;
    }
    

    观看演示,网址: http://jsfiddle.net/audetwebdesign/kAhnx/