我知道这很烦人,似乎CSS中的vertical-align是常见的陷阱,但我真的需要你的帮助。
我希望文本始终位于图像左侧的“中间”垂直位置(图像test.gif具有不同的尺寸)
我有这样的html元素结构(遗憾的是由于系统限制我不能改变它)
<div class="wrapper">
<div class="logo">
<img alt="some text" src="http://localhost/test.gif">
</div>
<div class="source">some text</div>
</div>
CSS:
.wrapper {clear: both;}
.logo {float: left;}
.source { float: left;line-height: 16px;}
花了1.5个小时,没有运气。试图将垂直对齐应用于不同位置的不同元素等...请帮忙!
答案 0 :(得分:0)
一个常见问题,但在此处解释清楚:http://phrogz.net/css/vertical-align/
要点
将父容器指定为position:relative
或position:absolute
在子容器上指定固定高度。
在子容器上设置position:absolute和top:50%
,将顶部向下移动到父容器的中间位置。
设置margin-top:-yy
,其中yy是子容器高度的一半,以偏移项目。
<style type="text/css">
#myoutercontainer { position:relative }
#myinnercontainer { position:absolute; top:50%; height:10em; margin-top:-5em }
</style>
...
<div id="myoutercontainer">
<div id="myinnercontainer">
<p>Hey look! I'm vertically centered!</p>
<p>How sweet is this?!</p>
</div>
</div>
答案 1 :(得分:0)
如果您不需要支持IE7,请尝试以下方法:
.wrapper { display: table; }
.logo { display: table-cell; }
.source { display: table-cell; vertical-align: middle; }
基本上,表格提供了垂直对齐中间的选项,通过使div
像表格一样,我们可以模仿该选项。