Maison >interface Web >tutoriel CSS >Est-il éthique de styliser des éléments de bloc en tant qu'éléments en ligne contenant d'autres éléments de bloc avec CSS ?
Est-il éthique de convertir des éléments de bloc en éléments en ligne à l'aide de CSS lorsqu'ils contiennent d'autres éléments de bloc ?
En HTML, les éléments de bloc coulent naturellement en unités individuelles, occupant toute la largeur de leur conteneur. Les éléments en ligne, en revanche, s'inscrivent dans la même ligne de texte que les autres éléments en ligne.
Considérez le balisage HTML valide suivant :
<div><p>This is a paragraph</p></div>
Application de la règle CSS suivante :
div { display: inline; }
transforme le div en un élément en ligne, tandis que l'élément p inclus reste un élément de bloc par défaut. Cela crée une situation dans laquelle un élément en ligne (le div) contient un élément de bloc (le p).
La question se pose : cela viole-t-il la validité HTML ? Pour répondre à cette question, nous devons considérer la manière dont la validité HTML est évaluée. Est-il déterminé avant l'application des règles CSS, ou après ?
Selon la spécification CSS 2.1 :
When an inline box contains an in-flow block-level box, the inline box (...) is broken around the block-level box (...) splitting the inline box into two boxes.
En d'autres termes, CSS définit explicitement comment les éléments en ligne doivent se comporter lorsqu'ils contiennent des éléments de bloc . Dans notre exemple, le div est divisé en deux zones de bloc anonymes pour accueillir le p.
Bien que la spécification CSS définisse clairement le comportement, elle laisse des questions ouvertes sur la cohérence entre les navigateurs. Cependant, étant donné que CSS est un standard Web, les navigateurs sont censés adhérer à ses spécifications.
De plus, HTML5 a assoupli certaines de ces restrictions, autorisant les éléments de niveau bloc à l'intérieur des éléments en ligne dans certains contextes, comme dans balises d’ancrage. Ceci est particulièrement utile lors de la création de gros blocs de contenu lié.
En fin de compte, le fait qu'il soit acceptable ou non de convertir des éléments de bloc en éléments en ligne contenant des éléments de bloc dépend du cas d'utilisation spécifique et des problèmes de compatibilité du navigateur. Si un comportement cohérent entre les navigateurs est crucial, il peut être préférable d'éviter de telles constructions.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!