我有一个小图片,在小部件区域中可能有长文字。我需要进行中心对齐,当文本高于图像时,仍然要对齐到中心(即使“更高”然后是图像) -
小提琴在这里:http://jsfiddle.net/as8xW/
我正在寻找跨浏览器的通用解决方案,没有表格
编辑我
更新答案后 - 我偶然发现并修改了可能的黑客攻击(jQuery)
这个脚本的作用实际上是将有问题的元素包装在表标记中 - 从而将它们转换为IE的实际表格。
假设我们有
.table { display: table; }
.trow { display: table-row; }
.tcell { display: table-cell; }
我们这样做:
$(document).ready(function(){
if ($.browser.msie && $.browser.version == 7)
{
$(".tcell").wrap("<td />");
$(".trow").wrap("<tr />");
$(".table").wrapInner("<table />");
}
});
将上述脚本与biziclop提供的解决方案一起使用 - 使其适用于我的测试...
编辑II
@biziclop解决方案VR2完美运行,从而使我的编辑我过时(或至少没有必要)
答案 0 :(得分:1)
V1:使用table-cell
要使用table-cell
,我必须在span
周围放置一个包装img
,因为即使table-cell
也不能更改图像大小以匹配其他单元格。< / p>
li: table-row
span: table-cell, vertical-align:middle
img
a: table-cell, vertical-align:middle
V2:使用内联块,一些固定宽度,适用于IE6
li: block: FIXED WIDTH
span: inline block (with IE treatment)
img
a: inline block with FIXED WIDTH not to drop below the image
答案 1 :(得分:0)
你可以尝试这个
HTML:
<div class="sidebar-box">
<ul>
<li>
<div class="left-col">
<img src="http://placehold.it/50x50" height="50" width="50">
</div>
<div class="right-col">
<a href="http://localhost/wp-sandbox/?p=283" title="Results Photography">
Results Photography Results Photography Results Photography Results Photography Results Photography Results Photography Results Photography Results Photography Results Photography
</a>
</div>
</li>
</ul>
</div>
CSS
.sidebar-box {
margin-bottom: 20px;
float: left;
width: 45%;
}
.sidebar-box img {
}
.sidebar-box li {
margin: 0;
display: block;
overflow: hidden;
zoom: 1;
}
.left-col {
display: table-cell;
vertical-align: middle;
_float: left;
*float: left;
width: 65px;
*margin-top: expression((parentNode.offsetHeight.offsetHeight/2)-(parseInt(this.offsetHeight)/2) <0 ? "0" :(parentNode.offsetHeight/2)-(parseInt(this.offsetHeight)/2) +'px');
}
.right-col {
display: table-cell;
vertical-align: middle;
_float: left;
*float: left;
*margin-top: expression((parentNode.offsetHeight.offsetHeight/2)-(parseInt(this.offsetHeight)/2) <0 ? "0" :(parentNode.offsetHeight/2)-(parseInt(this.offsetHeight)/2) +'px');
}
小提琴链接http://jsfiddle.net/cKmQ9/但它可以在IE6中导致小提琴错误,最好在新文档上尝试。