我在 Safari 5.1.7(在 Windows 上)上进行测试,令人惊讶的是我在 Chrome 中没有遇到同样的问题。也适用于 FF19 和 IE9。
我正在尝试在<span>
. 它可以工作,但是一旦我<span>
包含其他内联元素,它们就会在单独的行中分解。
这是代码:
.c { display: inline-table; vertical-align: middle; }
.c:before { content: 'above'; display: table-header-group; }
.c:after { content: 'below'; display: table-footer-group; }
工作正常:
,<span class="c">word</span>
呈现为
以下
文字
不起作用:<span class="c"><b>word1</b><b>word2</b></span>
,呈现为
上面
word1
word2
下面
而不是(在所有其他浏览器中):
上面
word1 word2
下面
这是一个演示:http: //jsfiddle.net/3LuHx/11/
我试过了
table-row
而不是table-header-group
/table-footer-group
,- 将
<b>
' 明确标记为inline !important
, - 将
<b>
's 标记为display:inline-block
+float:left
, - 设置
.c
为white-space:nobreak
,
但结果都是一样的。
如果我将 ' 包装在另一个中并将其设置为,它确实有效,但由于and首先使我的 DOM 脚本编写变得更加容易,我宁愿不引入任何新元素。<b>
<span>
display:table-row
:before
:after
以前有没有人遇到过这个问题并提出解决方案?