2013-04-10 32 views
2

我尝试水平居中2个divs并对齐它们之间的这2个div。当我在每个div中放入不同大小的文本时,问题就来了。以下是示例:http://jsfiddle.net/DgEcs/1/中心2文本与文本

为什么红色的div会向下移动以及如何解决?
CSS:

.container{ 
    margin: 20px auto; 
    height: 50px; line-height: 50px; 
    text-align: center; /* to center red and blue */ 
    background: whiteSmoke; 
} 
.red{ 
    display:inline-block; /* to put it side by side */ 
    font-size: 10px; 
    background:red; 
} 
.blue{ 
    display:inline-block; /* to put it side by side */ 
    font-size: 26px; 
    background:blue; 
} 

HTML:

<div class="container" > 
    <div class="red"> aaaaaaa </div> 
    <div class="blue"> bbbbbbb </div> 
</div> 

回答

2

添加vertical-align: top;到两个.red.blue

+0

好,它的工作原理。你知道为什么会发生?我之前尝试过:vertical-align:center;它不起作用,你明白为什么吗? – Nrc 2013-04-10 14:06:32

2

的CSS只需添加vertical-align:top。另外你可以优化你的CSS ...

http://jsfiddle.net/DgEcs/4/

.container div { 
    vertical-align:top; 
    display:inline-block; 
} 

.red{ 
    font-size: 10px; 
    background:red; 
} 

.blue{ 
    font-size: 26px; 
    background:blue; 
} 

现在看起来应该是这样: Screenshot taken from Chrome 26/OSX

+0

好的,它的工作原理。你知道为什么会发生?我之前尝试过:vertical-align:center;它不起作用,你明白为什么吗? – Nrc 2013-04-10 14:05:51

+0

你的小提琴是正确的。但是当你优化CSS时:1.容器不会在页面中水平居中2红色和蓝色也不在它们之间居中。我不明白你的答案? – Nrc 2013-04-10 14:10:39

+0

我的jsfiddle正在使用优化的样式,并应正常工作。您正在使用哪个浏览器? – gearsdigital 2013-04-10 14:22:20