我知道这个问题已经被要求死亡,但通过搜索没有任何帮助我。
你知道这笔交易,我有一个div元素,我需要垂直对齐文本,但没有任何工作(位置:绝对;顶部:50%; margin-top:-x;显示:table-cell; vertical-对齐:中等;等等。)
这是我正在使用的内容(抱歉内联CSS)。无论如何,我会使用行高,但文本可以是一行或两行。它应该与图像垂直对齐,图像总是最大高度为30px(30x50)。
<div style="margin:0 0 10px 0;padding:10px;border:2px solid #606060;background-color:#2b2b2b;-webkit-border-radius:8px;-moz-border-radius:8px;border-radius:8px;">
<div style="float:left;width:55px;height:40px;">
<a href="link"><img style="max-width:50px;border:1px solid #ffb92c;" src="image.jpg" alt="" /></a>
</div>
<div style="float:right;width:155px;font-size:0.7em;height:40px;">
<a href="link">This is the text to vertically align</a>
</div>
</div>
答案 0 :(得分:9)
你可以做的另一件事。如果div中只有一行文字,您可以使用line-height
例如
div {
line-height:40px;
}
答案 1 :(得分:6)
这个想法来自here,应该适用于所有浏览器。
<div style="margin: 0 0 10px 0; padding: 10px; border: 2px solid #606060; background-color: #2b2b2b;
-webkit-border-radius: 8px; -moz-border-radius: 8px; border-radius: 8px;">
<div style="float: left; width: 55px; height: 40px;">
<a href="link">
<img style="max-width: 50px; border: 1px solid #ffb92c;" src="image.jpg"
alt="" /></a>
</div>
<div style="float: right; width: 155px; font-size: 0.7em; height: 40px; display: table; #position: relative; overflow: hidden;">
<div style="#position: absolute; #top: 50%; display: table-cell; vertical-align: middle;">
<div style="#position: relative; #top: -50%;">
<a href="link">This is the text to vertically align</a>
</div>
</div>
</div>
<div style="clear: both"></div>
</div>
答案 2 :(得分:3)
答案 3 :(得分:2)
这是解决方案的简洁版本
<div style="background: yellow">
<div style="width: 155px; font-size: 0.7em; height: 40px; display: table; overflow: hidden;">
<div style="display: table-cell; vertical-align: middle;">
<div style="">
<a href="link">This is the text to vertically align</a>
</div>
</div>
</div>
<div style="clear: both"></div>
答案 4 :(得分:0)
似乎是一个常见的浮动问题,可以使用clearfix修复,或者像我在下面的代码片段中一样,使用固定的包装高度修复。
我还坐了line-height
个漂浮的div并使它更宽一点。
看看这个:
<div style="margin:0 0 10px 0;padding:10px;border:2px solid #606060;background-color:#2b2b2b;-webkit-border-radius:8px;-moz-border-radius:8px;border-radius:8px;height:40px"> <div style="float:left;width:55px;height:40px;"> <a href="link"><img style="max-width:50px;border:1px solid #ffb92c;" src="image.jpg" alt="" /></a> </div> <div style="float:right;width:185px;font-size:0.7em;height:40px;line-height:40px"> <a href="link">This is the text to vertically align</a> </div> </div>
答案 5 :(得分:0)
您是否只需要显示很长的文本中的几行,这里是Fiddle。根据需要调整高度。
.container-text {
height:40px;
width:180px;
overflow-y:hidden;
display:table-cell;
vertical-align:middle;
text-align: center;
}