Vos guillemets ouverts ne sont pas terminés, le navigateur fait donc l'hypothèse «intelligente» que vous êtes sur le point d'imbriquer vos guillemets, ce qui entraîne des guillemets extérieurs doubles pour le premier élément et des guillemets intérieurs simples pour le second. C'est ainsi que fonctionne la ponctuation des guillemets dans les citations imbriquées. Voir Wikipedia et les références aux citations imbriquées.
Notamment, les limites des éléments sont ignorées, donc cela n'a pas d'importance même si votre deuxième élément est imbriqué plus profondément ou si les deux éléments sont imbriqués dans leurs propres éléments parents, cela fonctionnera toujours de la même manière, ce qui le rend particulièrement utile dans les paragraphes qui peuvent contiennent différents types et combinaisons d'éléments phrasé ( a
, br
, code
, em
, span
, strong
, etc, ainsi que q
lui - même). La façon dont les guillemets sont imbriqués dépend uniquement du nombre de open-quote
s et de close-quote
s générés à tout moment, et l'algorithme est détaillé dans la section 12.3.2 de la spécification CSS2 , se terminant par la note suivante:
Remarque. La profondeur des citations est indépendante de l'imbrication du document source ou de la structure de mise en forme.
À cette fin, il existe deux soi-disant «solutions» à ce problème, qui impliquent toutes deux l'ajout d'un ::after
pseudo-élément pour équilibrer le premier ensemble de guillemets ouverts.
En insérant des guillemets fermés à ::after
l' aide de la citation, le premier élément se termine avant que le deuxième élément ne soit rencontré afin qu'il n'y ait pas d'imbrication de citations.
a::before {
content: open-quote;
}
a::after {
content: close-quote;
}
<a href="http://www.google.com">Google</a> <br>
<a href="http://www.amazon.com">Amazon</a>
Si vous ne souhaitez pas afficher les guillemets fermés, vous pouvez toujours empêcher le navigateur de générer des guillemets simples pour le deuxième élément à l'aide de no-close-quote
.
a::before {
content: open-quote;
}
a::after {
content: no-close-quote;
}
<a href="http://www.google.com">Google</a> <br>
<a href="http://www.amazon.com">Amazon</a>
open-quote
n'ouvre une citation. Il ne fait pas référence à un caractère entre guillemets.