我想将元素与封闭的嵌入式元素的顶部对齐。因此,我正在使用以下代码:

HTML:

<span id="outer">
    <img src="http://placekitten.com/200/200" />
    <span id="inner">Watch me align!</span>
</span>


CSS:

#outer {
    position: relative;
}

#inner {
    position: absolute;
    top: 0;
    left: 0;
    background-color: white;
}

img {
    vertical-align: top;
}


该代码在Firefox和Chrome中有效:文本位于图像的左上角。但是在Internet Explorer中,文本会停留在图像的底部。

您可以在my Fiddle中看到它。

阅读this MSDN entry后,我得出结论,vertical-align属性不适用于嵌入式元素,因为它们不支持valign属性。

到目前为止,我最好的主意是使用一些JavaScript重新定位文本,但您可能会同意:这不是一个优雅的解决方案。

因此,您知道在Internet Explorer中完成这项工作的任何巧妙技巧吗?

重要!父级的以下CSS属性无法更改:

#outer {
    display: inline;
    position: relative;
    float: none;
}

最佳答案

这应该起作用:http://jsfiddle.net/gcG4D/

的HTML

<span id="outer">
    <img src="http://placekitten.com/200/200" />
    <span id="inner">Watch me align!</span>
</span>


的CSS

#outer {
    position: relative;
    display:inline-block;
    width:auto;
}

#inner {
    position: absolute;
    top: 0;
    left: 0;
    background-color: white;
    display:block;
}

img {
    display:inline-block;
}

08-18 16:36