Dans le domaine du balisage HTML et du style CSS, il est largement admis que l'imbrication d'un L'élément de bloc dans un élément en ligne viole les normes Web établies. Cependant, une situation particulière se présente lorsque le scénario inverse est rencontré : un élément en ligne contenant un élément de bloc.
Considérez l'extrait suivant :
<div><p>This is a paragraph</p></div>
Ce balisage apparaît parfaitement valide jusqu'à ce que l'énigmatique CSS ci-dessous est appliqué :
div { display:inline; }
L'énigme surgit lorsque nous examinons la page Web résultante. L'élément div en ligne renferme désormais un élément p au niveau du bloc, défiant potentiellement les règles HTML et CSS conventionnelles.
Ambiguïté de validité
La question de la validité devient primordiale. Les éléments de la page sont-ils toujours conformes aux standards du web ? Certains peuvent affirmer que le balisage initial est valide mais que le CSS rend les éléments invalides, tandis que d'autres peuvent affirmer que la validité doit être jugée après l'application du CSS.
Énigme des spécifications CSS
La spécification CSS 2.1 fournit une définition énigmatique pour ce scénario spécifique :
"Lorsqu'une boîte en ligne contient un niveau de bloc entrant box, la boîte en ligne [...] est divisée autour de la boîte au niveau du bloc, divisant la boîte en ligne en deux boîtes..."
Cette explication implique que l'élément en ligne est divisé en deux, créant essentiellement une boîte de bloc anonyme autour de l'élément de bloc intégré. Cependant, la spécification laisse des questions sans réponse concernant la mise en œuvre et la cohérence entre les navigateurs.
Incertitude de mise en œuvre du navigateur
Bien que la spécification CSS tente de définir le comportement, sa mise en œuvre dans divers les navigateurs restent une question de conjecture. Certains navigateurs peuvent suivre la spécification, tandis que d'autres peuvent présenter des implémentations alternatives, telles que le rendu d'une bordure autour de l'élément en ligne contenant l'élément de bloc.
Exception HTML5
Ajout de complexité Compte tenu de la situation, HTML5 introduit une exception qui permet de placer des éléments de niveau bloc dans certains éléments en ligne, tels que le étiqueter. Cette exception constitue une faille pour les développeurs cherchant à créer de gros blocs de contenu cliquable.
Conclusion
La légalité de la conversion d'éléments de bloc en éléments de bloc intégrés avec des éléments de bloc intégrés reste un sujet de débat. Bien que la spécification CSS fournisse un cadre, son interprétation et sa mise en œuvre dans les navigateurs peuvent varier. Par conséquent, les développeurs doivent faire preuve de prudence lorsqu’ils utilisent cette technique, notamment en ce qui concerne les considérations de compatibilité entre navigateurs.
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!