2015-07-22 113 views
2

我想垂直对齐我的div的内容。垂直对齐div的内容

因此,基本上'你好测试'应该是在垂直div的中心。

Demonstration

.parent { 
 
    background:blue; 
 
    float:left; 
 
    width:100% 
 
} 
 

 
.parent div { 
 
    float:left; 
 
    width:50%; 
 
} 
 

 
h1 { 
 
    font-size:50px; 
 
    margin:0; 
 
    padding:0; 
 
}
<div class="parent"> 
 

 
<div> 
 
    <h1>hello!</h1> 
 
    <p>test</p> 
 
</div> 
 

 
<div> 
 
    <img src="http://placehold.it/250x250" /> 
 
</div> 
 

 
</div>

+3

[Flexbox的解决方案(HTTPS ://jsfiddle.net/z9zw0u9g/1/):'.parent {display:flex; align-items:center; }'。 – lmgonzalves

+0

@lmgonzalves这是优秀的 - 请添加为答案:) – michaelmcgurk

+1

完成!但是请考虑在IE9中不支持“flexbox” - :( – lmgonzalves

回答

4

您可以使用表格布局这样的:

.parent { 
 
    background:blue; 
 
    width:100%; 
 
    display: table; 
 
} 
 

 
.parent div { 
 
    display:table-cell; 
 
    vertical-align:middle; 
 
    width:50%; 
 
} 
 

 
h1 { 
 
    font-size:50px; 
 
    margin:0; 
 
    padding:0; 
 
}
<div class="parent"> 
 

 
<div> 
 
    <h1>hello!</h1> 
 
    <p>test</p> 
 
</div> 
 

 
<div> 
 
    <img src="http://placehold.it/250x250" /> 
 
</div> 
 

 
</div>

0

使用这个CSS

body{ 
    margin:0 auto; 
} 
.parent { 
    background:blue; 
    float:left; 
    width:100% 
} 

.parent div 
{ 
    text-align:center; 
    width:50%; 
    margin:0 auto; 
} 

h1 { 
    font-size:50px; 
    margin:0; 
    padding:0; 
}