2013-03-08 62 views
1

美好的一天。絕對中心流體格

我知道,如果你想絕對中心一個div,你這樣做:

<div id="parent"> 
    <div id="child">blahblah</div> 
</div> 

CSS:

#parent{ 
    width: 500px; 
    height: 500px; 
    position: absolute; /*(or relative)*/ 
    top: 50%; 
    left: 50%; 
    margin-top: -250px; 
    margin-left: -250px; 
    text-align: center; 
} 

如果什麼父DIV是流體DIV?你怎麼絕對中心它意味着:

#parent{ 
    max-width: 500px; 
    max-height: 500px; 
    top: 50%; ->is this right? 
    left: 50%; -> is this right? 
    margin-top: ???; 
    margin-left: ???; 
    text-align: center; 
} 
+0

是您#parent實際上元素的定位的孩子到>? – 2013-03-08 11:38:51

+0

#parent div是孩子的身體,或任何div是它的父母...取決於位置相對或absoulte – 2013-03-08 11:50:52

+0

http://jsfiddle.net/Z5SSD/像這樣? – Passerby 2013-03-08 11:52:36

回答

0

由於widthheight是流動的,你需要去JavaScript或jQuery的。只需在head標記中添加下面的代碼即可。 (下面的例子的是在JavaScript

<script> 
    window.onresize = function(){ 
     //To work even on resize 
     getToMiddle(); 
    } 
    window.onload = function(){ 
     getToMiddle(); 
    } 

    function getToMiddle(){ 
     var box = document.getElementById('parent'); 
     var height = box.offsetHeight; 
     var width = box.offsetWidth; 
     box.style.top = -(height/2); 
     box.style.left = -(width/2); 
    } 
</script> 

和你的CSS是這樣的:

#parent{ 
    max-width: 500px; 
    max-height: 500px; 
    background-color:green; 
    position:absolute; 
    top: 50%; 
    left: 50%; 
    /* width: 10%; 
    height: 10%; */ 
} 

要進行測試,給width: 10%; and height: 10%

Working Fiddle

+0

謝謝,但在你的小提琴中只有寬度調整大小,只有高度...和框內的文本不包含裏面時調整大小... – 2013-03-10 15:57:13

+0

@DavidVanStaden也'最小寬度和'min -height'。像這樣在這個小提琴http://jsbin.com/ewizad/10/edit – 2013-03-11 03:37:50

0

我會簡單地使用flex實現這個...

#parent { 
 
    display: flex; 
 
    justify-content: center; 
 
}
<div id="parent"> 
 
    <div id="child">blahblah</div> 
 
</div>