2009-11-11 11 views
11

El Validador W3C me dice que no puedo poner elementos de nivel de bloque dentro de elementos en línea. Tiene sentido ...Elementos de nivel de bloque dentro de elementos en línea

pero ¿qué sucede si estoy usando CSS para cambiar ese elemento de nivel de bloque en un elemento en línea?

¿Y si uso CSS para convertir un elemento en línea en un elemento de nivel de bloque (cuando está dentro de otro elemento en línea)?

El Validator no se da cuenta de esto obviamente, pero ¿está mal?

(no estoy realmente hacer esto, me pregunto acerca de las mejores prácticas)

Respuesta

7

Un elemento definido como un elemento de bloque en la especificación HTML no es lo mismo que un elemento se define como display: block; en CSS .

Con esto quiero decir: incluso si dices <p style="display: inline;">Lorem...</p>. El <p> seguirá siendo un elemento de bloque a los ojos de HTML.

Se dice que HTML, CSS y JavaScript se unen loose coupling y que uno no debe depender de otro y que la ausencia de uno no debe hacer que los otros (o el sistema como un todo) fallen.

2

Un elemento que está en línea no debe contener elementos de bloque. Los elementos de bloque pueden contener elementos en bloque y/o en línea, mientras que los elementos en línea solo pueden contener otros elementos en línea (incluido inline-block, como <img>).

Puede, por supuesto, hacerlo de todos modos, ya que la representación gráfica será bastante uniforme en todos los navegadores. Todavía no es algo que recomendaría, y tampoco puedo pensar en una razón para hacerlo.

Cuestiones relacionadas