我应该如何将 div 在垂直和水平方向上准确居中?
How should i center exactly a div both vertically and horizontally?
我是 CSS 的新手,但我尝试了不同的方法,但就是无法让我的 div 垂直居中。
Parent :
#ModalScroll{
position:absolute;
top:0;
left:0;
z-index:1001;
height:1px;
width:1px;
overflow:hidden;
display:none;
font-size:100%;
text-align:left;
}
Child :
.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 中的解决方案。
您是否使用了 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”...
编辑:这是带有“!重要”标记的 css:
position:absolute !important;
left:0 !important;
right:0 !important;
top:0 !important;
bottom:0 !important;
margin:auto !important;
试试这个:
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;
}
这是您问题的代码,
HTML代码:
<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; }
我是 CSS 的新手,但我尝试了不同的方法,但就是无法让我的 div 垂直居中。
Parent :
#ModalScroll{
position:absolute;
top:0;
left:0;
z-index:1001;
height:1px;
width:1px;
overflow:hidden;
display:none;
font-size:100%;
text-align:left;
}
Child :
.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 中的解决方案。
您是否使用了 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”...
编辑:这是带有“!重要”标记的 css:
position:absolute !important;
left:0 !important;
right:0 !important;
top:0 !important;
bottom:0 !important;
margin:auto !important;
试试这个:
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;
}
这是您问题的代码,
HTML代码:
<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; }