2011-04-28 8 views
22

Estoy tratando de aplicar display: inline; al elemento <legend> en mi elemento <fieldset>, de modo que el siguiente <span> seguirá en la misma línea, pero mi CSS no tiene ningún efecto.¿Por qué mi elemento <legend> no se mostrará en línea?

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

JSFiddle

EDITAR

tengo ningún control sobre el código HTML; Solo puedo editar CSS

+0

'' elementos son "dudosos". ¿Ha considerado simplemente mover el '' dentro del ''? – thirtydot

+0

¿No puedes hacer 2 tramos dentro de 'legend' para hacer lo que quieras? ' Leyenda Seguidor' – Bazzz

+0

han editado la pregunta para aclarar el problema. –

Respuesta

23

Las leyendas son especiales. En particular, su representación predeterminada no se puede describir en CSS, por lo que los navegadores utilizan medios que no son CSS para representarlos. Lo que eso significa es que una leyenda posicionada estáticamente se tratará como una leyenda y se separará del contenido real del fieldset.

Lo raro no termina ahí; si invierte el orden del lapso y la leyenda, la leyenda mostrará todavía arriba en la mayoría de los navegadores (pero no en Opera, al parecer).

+1

"la representación predeterminada no se puede describir en CSS" ¿Qué significa esto y por qué es así? Suena como una mala forma de implementar elementos HTML, para mí. – TylerH

+0

Significa lo que dice: la representación tradicional de campo no puede expresarse en CSS. En particular, el hecho de que la leyenda hará que el fieldset sea más ancho según sea necesario y la forma en que el borde del campo de juego dibuja alrededor de la leyenda. –

5

Leyendas simplemente no acepta display: inline o display: inline-block, pero puede darle float: left y se mostrará de forma similar a lo que desee.

+0

Esto funciona para mí, con Firefox 51.0.1 e IE 11, pero, ¿es esto confiable? –

+1

@ R.Schreurs He tenido mucho éxito con eso ... También uso 'width: fit-content' para la leyenda si no estoy soportando IE 11/Edge – kzh

Cuestiones relacionadas