将div垂直放在中间

时间:2013-03-07 17:36:54

标签: css

我如何在中间水平/垂直设置div?

到目前为止,这是我的代码:

HTML

<div id="outer">
    <div id="inner">
        <div id="signin_header">
        Sign in
        </div>
    </div>
</div>

CSS

html, body {
    height: 100%;
}
html {
    display: table;
    margin: auto;
    height: 100%;
}
body {
    display: table-cell;
}
#outer {
    width: 100%;
    text-align: center;
    height: 100%;
}
#inner {
    display: inline-block;
    background-color: rgb(245, 245, 245);
    background-image: none;
    background-origin: padding-box;
    background-size: auto;
    border-bottom-color: rgb(229, 229, 229);
    border-bottom-style: solid;
    border-bottom-width: 1px;
    border-left-color: rgb(229, 229, 229);
    border-left-style: solid;
    border-left-width: 1px;
    border-right-color: rgb(229, 229, 229);
    border-right-style: solid;
    border-right-width: 1px;
    border-top-color: rgb(229, 229, 229);
    border-top-style: solid;
    border-top-width: 1px;
    display: block;
    font-family: 'segoe ui', arial, helvetica, sans-serif;
    font-size: 13px;
    width: 300px;
    padding: 25px;
}
#signin_header {
    color: rgb(34, 34, 34);
    display: block;
    font-family: 'segoe ui', arial, helvetica, sans-serif;
    font-size: 16px;
    font-weight: normal;
    height: 16px;
    line-height: 16px;
    margin-top: 0px;
    width: 283px;
    text-align: left;
}

小提琴可以在这里找到

http://jsfiddle.net/yaFeD/

3 个答案:

答案 0 :(得分:1)

假设您正试图将登录div(不是字体本身)居中,这是您需要的新CSS,在您的jsfiddle中测试,使用margin: 0 auto;position: relative;设置div在那个div的中间。

#signin_header {
    color: rgb(34, 34, 34);
    display: block;
    font-family: 'segoe ui', arial, helvetica, sans-serif;
    font-size: 16px;
    font-weight: normal;
    height: 16px;
    line-height: 16px;
    margin: 0 auto;
    position: relative;
    width: 283px;
}

编辑:我也把你的text-align: left;拿出来了

答案 1 :(得分:1)

这就是你要追求的吗?我想这就是你想要的?

html, body {
height: 100%;
}
html {
display: table;
margin: auto;
height: 100%;
}
body {
display: table-cell;
}
#outer {
width: 100%;
text-align: center;
height: 100%;
position:relative;
top:50%;
bottom:50%;
}
#inner {
display: inline-block;
background-color: rgb(245, 245, 245);
background-image: none;
background-origin: padding-box;
background-size: auto;
border-bottom-color: rgb(229, 229, 229);
border-bottom-style: solid;
border-bottom-width: 1px;
border-left-color: rgb(229, 229, 229);
border-left-style: solid;
border-left-width: 1px;
border-right-color: rgb(229, 229, 229);
border-right-style: solid;
border-right-width: 1px;
border-top-color: rgb(229, 229, 229);
border-top-style: solid;
border-top-width: 1px;
display: block;
font-family: 'segoe ui', arial, helvetica, sans-serif;
font-size: 13px;
width: 300px;
padding: 25px;
}
#signin_header {
color: rgb(34, 34, 34);
display: block;
font-family: 'segoe ui', arial, helvetica, sans-serif;
font-size: 16px;
font-weight: normal;
height: 16px;
line-height: 16px;
margin-top: 0px;
width: 283px;
text-align: left;
}

http://jsfiddle.net/EQjHz/

答案 2 :(得分:0)

margin:auto;添加到inner-div可以解决问题。 如果只需要水平对齐,请仅添加margin-left:auto;margin-right:auto;。 同样,对于垂直对齐,请添加margin-bottom:auto;margin-top:auto;