1

我在 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,
  • 设置.cwhite-space:nobreak,

但结果都是一样的。

如果我将 ' 包装在另一个中并将其设置为,它确实有效,但由于and首先使我的 DOM 脚本编写变得更加容易,我宁愿不引入任何新元素。<b><span>display:table-row:before:after

以前有没有人遇到过这个问题并提出解决方案?

4

2 回答 2

1

好吧,我最终插入了一个额外spandisplay: table-row-- 似乎是解决这个问题的唯一方法。

于 2013-03-11T05:22:02.260 回答
0

我只是通过添加float: left元素来解决这个问题。希望有帮助!

于 2016-08-16T08:40:51.907 回答