2009-11-11 5 views
11

Le validateur W3C me dit que je ne peux pas placer des éléments de niveau bloc à l'intérieur des éléments en ligne. Ça a du sens ...Eléments de niveau de bloc à l'intérieur des éléments en ligne

Mais que se passe-t-il si j'utilise CSS pour changer cet élément au niveau du bloc en un élément en ligne? Et si j'utilise CSS pour convertir un élément en ligne en un élément de niveau bloc (lorsqu'il se trouve dans un autre élément en ligne)?

Le validateur ne prend pas cela en compte, mais est-ce que c'est faux?

(je fais pas vraiment, je me demande au sujet des meilleures pratiques)

Répondre

7

Un élément défini comme un élément de bloc dans la spécification HTML n'est pas le même comme un élément défini comme display: block; en CSS .

Avec cela, je veux dire: Même si vous dites <p style="display: inline;">Lorem...</p>. Le <p> sera toujours un élément de bloc aux yeux de HTML. HTML, CSS et JavaScript s'ils sont utilisés correctement ont loose coupling l'un vers l'autre et que l'un ne devrait pas dépendre d'un autre et que l'absence d'un ne devrait pas faire échouer les autres (ou le système entier).

2

Un élément qui est un élément en ligne ne doit pas contenir d'éléments de bloc. Les éléments de bloc peuvent contenir des éléments de type bloc et/ou en ligne, tandis que les éléments en ligne ne peuvent contenir que d'autres éléments en ligne (y compris inline-block, tels que <img>).

Vous pouvez bien sûr le faire de toute façon, car la représentation graphique sera assez cohérente entre les navigateurs. Ce n'est toujours pas quelque chose que je recommanderais, et je ne peux pas vraiment penser à une raison de le faire non plus.

Questions connexes