我无法为这种完全流畅的布局找到合适的解决方案。我希望以下小提琴中的子标题在图标旁边垂直居中对齐。根据浏览器的大小(以及不同的文本长度),子标题可能会分成多行。
我准备了两个小提琴 - 第一次尝试是我首选的方法,因为我已经对类似的布局进行了更彻底的测试:
第二个小提琴,是使用display:table-cell;
尝试同样的情况,但对于我的生活,我无法修复丢失的右文本对齐,我也从未彻底测试IE6 + compat with这种显示类型:
http://jsfiddle.net/mmDFC/1/(这几乎可行,省去了text-align:right;
)
我已经找到了许多类似标题的SO问题,但找不到我想要的东西,所以很好的回答将我指向一个我错过的问题,或者提出了解决上述问题的方法。
全部以垂直对齐文字的名义......:/
浏览器更新:我在Chrome中摆弄,我看到IE8的行为相似,但Ffox3在解决方案2方面表现不同。
答案 0 :(得分:2)
如果我理解你想要什么,你只需要将display:table
添加到h2
<div class="wrapper clearfix">
<h1>Main Title</h1>
<h2>
<span id="fluid">
Fluid Span
</span>
<span id="icon">
Lots of long text...
</span>
</h2>
</div>
.clearfix:after {
content:"";
display:block;
clear:both;
}
h2 {
float:right;
text-align:right;
background-color:#999;
display:table;
width:43%;
}
span {
background-color:#ccc;
border:1px #000 solid;
vertical-align:middle;
}
span#fluid {
display:table-cell;
height:100%;
}
span#icon {
display:table-cell;
width:60px;
height:40px;
}
http://jsfiddle.net/thomas4g/WecP4/28/
如果这不是您想要的,请告诉我。