2011-04-28 81 views
22

我试图将display: inline;应用于我的<fieldset>元素中的<legend>元素,以便下面的<span>将在同一行后面,但是我的CSS没有任何效果。为什么我的<legend>元素不会内联显示?

legend{ 
 
    display: inline; 
 
} 
 
span { 
 
    display: inline; 
 
}
<fieldset> 
 
    <legend>Legend</legend> 
 
    <span>Follower</span> 
 
</fieldset>

JSFiddle

编辑

我有过HTML无法控制;我只能编辑CSS

+0

''元素是“狡猾的”。你是否考虑过简单地将''移到''内? – thirtydot 2011-04-28 12:59:25

+0

你能不能在'legend'里面做两个跨度来做你想做的事? '图例追随者' – Bazzz 2011-04-28 13:01:12

+0

编辑问题使问题更清楚。 – 2011-04-28 13:13:04

回答

23

传说很特别。特别是,它们的默认渲染不能用CSS来描述,所以浏览器使用非CSS的方式来渲染它们。这意味着一个静态定位的图例将被视为一个图例,并与该字段的实际内容分开。

奇怪的并不止于此;如果您颠倒了范围和图例的顺序,图例仍然显示在大多数浏览器(但显然不在Opera中)。

+1

“默认渲染不能用CSS来描述”这是什么意思,为什么会这样?听起来像是一种不好的方式来实现HTML元素,对我来说。 – TylerH 2015-04-28 15:58:53

+0

它意味着什么:传统的字段集渲染实际上不能用CSS表达。特别是传说将使字段集根据需要变宽,以及字段边框在图例周围绘制的方式。 – 2015-04-28 20:23:07

5

传说只是不接受display: inlinedisplay: inline-block,但你可以给它float: left,它会显示类似于你想要的。

+0

这适用于我,与Firefox 51.0.1和IE 11,但这是可靠的? – 2017-03-06 12:17:56

+1

@ R.Schreurs我已经获得了很多成功......如果我不支持IE 11/Edge,我还会使用'width:fit-content'作为图例 – kzh 2017-03-07 14:19:01

相关问题