我正在尝试将文本与图像垂直对齐(反之亦然?)。这是一些代码:
<div class="row">
<div class="col-md-3">col-md-3
<ul>
<li><img src="http://placehold.it/60x60"><p>Text Text Text</p></li>
<li><img src="http://placehold.it/60x60"><p>Text</p></li>
<li><img src="http://placehold.it/60x60"><p>Text Text Text Text</p></li>
<li><img src="http://placehold.it/60x60"><p>Text Text</p></li>
<li><img src="http://placehold.it/60x60"><p>Text Text Text Text Text</p></li>
<li><img src="http://placehold.it/60x60"><p>Text</p></li>
<li><img src="http://placehold.it/60x60"><p>Text Text</p></li>
</ul>
{# 3 more columns like this #}
</div>
还 CSS :
ul {
list-style-type: none;
padding: 0;
margin: 0;
}
div ul li {
display: table-row;
}
img {
float: left;
margin: 0 0 10px 0;
padding: 2px;
vertical-align: middle;
}
另外,可能重要的是所有图像都是相同的固定大小,比如示例中的60x60,我可以不将其用作背景。 我该如何对齐?感谢。
更新:正如所指出的那样,我正在寻找文字位于图片右边缘的中间,谢谢。
答案 0 :(得分:14)
我的解决方案适用于一行文本以及多行。
Working Fiddle 经过测试: IE10,IE9,IE8,Chrome,FF,Safari
HTML:与您发布的内容相同
我假设你的意思是中间对齐。如果不是:使用top
| bottom
代替middle
<强> CSS 强>
*
{
padding: 0;
margin: 0;
}
ul
{
list-style-type: none;
}
div ul li
{
margin: 5px;
}
img
{
vertical-align: middle; /* | top | bottom */
}
div ul li p
{
display: inline-block;
vertical-align: middle; /* | top | bottom */
}
答案 1 :(得分:1)
我不是使用这些表格显示选项的忠实粉丝,对它们有一些糟糕的跨浏览器体验。
对我来说,你可以在这里使用line-height。像这样:
ul {
list-style-type: none;
padding: 0;
margin: 0;
}
div ul li {
line-height: 60px;
}
img {
float: left;
margin: 0 0 10px 0;
padding: 2px;
}
答案 2 :(得分:0)
您可以将<p>
样式从默认显示修改为内联:
p {display: inline}
答案 3 :(得分:0)
只需从<p>
移除float:left
代码和img
即可。
答案 4 :(得分:0)
您可以在vertical-align: top;
元素上使用li
声明。但是,您需要使用clearfix,因为您正在浮动图像。
答案 5 :(得分:0)
我刚刚添加了vertical-align:middle / top / bottom;对图像和工作。