html - 空行内 block 元素的垂直对齐

标签 html css standards

考虑以下 html/css:

<style>
span
{
  display:inline-block;
  width:5em;
  height:5em;
  padding:1em;
}
</style>

a
<span style="background-color:blue;">b</span>
<span style="background-color:green;"></span>
<span style="background-color:red;">c</span>
d

蓝色和红色框以及框内和框周围的文本水平排列。空的绿色盒子没有;它出现在其他两个框的上方。如果我向绿色框中添加一些文本,这种行为就会停止,一切都会按照我想要的方式排列。

这在 IE8(标准模式)、FireFox 3.0 和 Chrome 中一直发生,所以我假设有一些我不理解的空内联 block 元素的属性。

我可以通过指定 vertical-align 属性使框对齐,但是四个文本值不再对齐。有什么想法吗?我被这个难住了。

最佳答案

给跨度顶部对齐然后负边距等于你的填充,你不需要不间断的空间黑客。

span
{
    display:inline-block;
    width:5em;
    height:5em;
    padding:1em;
    vertical-align:top;
    margin-top: -1em;
}



a
    <span style="background-color:blue;">b</span>
    <span style="background-color:green;"></span>
    <span style="background-color:red;">c</span>
d

关于html - 空行内 block 元素的垂直对齐,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1885873/

相关文章:

javascript - 由于错误,动态 jQuery 输入刷新页面

html - Bootstrap 容器相互 float

css - 使用 CSS 在导航栏上滑动(动画)bg 图像位置

javascript - 是否有任何修改 JSON 以正式允许不带引号的属性名称的建议?

c++ - C++ 标准中 `restrict` 关键字/属性的情况

html - 单击时未选择单选按钮

html - 为什么 HTML5 视频在 Firefox 11 中播放不一致?

html - IE 中的空白 iFrame

html - 在 Firefox 中放大背景图像

html - 浏览器从标准输入读取 HTML