我应该如何在垂直和水平方向上精确对准一个div?

时间:2015-04-15 09:30:47

标签: jquery html css internet-explorer centering

我是CSS中的新手,但我尝试了不同的东西,但我不能让我的div垂直居中。

家长:

#ModalScroll{
    position:absolute;
    top:0;
    left:0;
    z-index:1001; 
    height:1px;
    width:1px;
    overflow:hidden;
    display:none;
    font-size:100%;
    text-align:left;
}

孩子:

.ModalDialog{
    border:1px solid #3C4749;
    background-color:#FFF;
    margin:0 auto 0 auto;
    display:none;
    font-size: 12px;
    box-sizing: border-box; 
    width: 280px;
    height: 160px; 
    position: absolute;
    left: 50%;
    top: 50%;
    margin: -80px 0 0 -140px;
}

我不知道jQuery中的解决方案是否应该更好,但我更喜欢CSS中的解决方案。

3 个答案:

答案 0 :(得分:1)

您是否使用过firebug以确保您的css已被充分利用? (也许其他CSS会重载项目的某些属性......)

position:absolute; /*it can be fixed too*/
left:0; right:0;
top:0; bottom:0;
margin:auto;

应该做的伎俩(如Center a DIV horizontally and vertically中所述) 也许会尝试为每个属性添加“!important”...

编辑:这是带有“!important”标记的CSS:

position:absolute !important;
left:0 !important;
right:0 !important;
top:0 !important;
bottom:0 !important;
margin:auto !important;

答案 1 :(得分:1)

试试这个:

<强> HTML

<div class="divContent">
    content goes here
</div>

<强>的CSS

.divContent {
    width: 200px;
    height: 300px;
    border: 1px solid red;
    position:absolute;
    left:0;
    right:0;
    top:0;
    bottom:0;
    margin:auto;
}

答案 2 :(得分:1)

以下是您的问题的代码,

HTML code:


<div class="maindiv">
    <p class="hdiv">JSFIDDLE V</p>
</div>
<br>
<div class="maindivh">
    <p class="hdih">JSFIDDLE H</p>
</div>

CSS代码:

.maindiv {   position:relative; border:1px solid #cfcfcf; height:50px; width:200px; }

.hdiv {width:200px; text-align:center; height:50px;}

.maindivh { position:relative; border:1px solid #cfcfcf; height:150px; width:200px; }

.hdih { vertical-align:middle; display:table-cell; line-height:150px; text-align:center; width:200px; }

demo