À l'aide de CSS :before et :after pseudo-éléments avec du CSS?
Je suis en train de faire une signature d'e-mail HTML avec du CSS (c'est à dire CSS dans style
attributs), et je suis curieux de savoir si il est possible d'utiliser le :before
et :after
pseudo-éléments.
Si oui, comment pourrais-je mettre en place quelque chose comme ça avec du CSS?
td { text-align: justify; }
td:after { content: ""; display: inline-block; width: 100%; }
- Avez-vous besoin inline?
- Vous ne pouvez pas utiliser des styles en ligne pour cibler les pseudo-classes ou des pseudo-éléments.
- probally double de CSS Pseudo-classes avec des styles en ligne
- Pas la même question, que les pseudo-éléments et les pseudo-classes ne sont pas la même chose. J'ai écrit la réponse de mon propre ici de préciser.
Vous devez vous connecter pour publier un commentaire.
Vous ne pouvez pas spécifier des styles en ligne pour les pseudo-éléments.
C'est parce que les pseudo-éléments, comme des pseudo-classes (voir ma réponse à cette autre question), sont définis dans le CSS à l'aide des sélecteurs comme des abstractions de l'arborescence des documents qui ne peuvent pas être exprimées dans le langage HTML. Une ligne
style
attribut, d'autre part, est spécifié dans le code HTML d'un élément particulier.Depuis des styles en ligne peut se produire uniquement en HTML, ils ne s'appliquent à l'élément HTML qui ils sont définis, et non pas à une pseudo-éléments qu'il génère.
Que d'un côté, la principale différence entre les pseudo-éléments et les pseudo-classes dans cet aspect, c'est que les propriétés sont héritées par défaut est être hérité par
:before
et:after
de l'élément générateur, alors que la pseudo-classe les styles ne s'appliquent pas à tous. Dans votre cas, par exemple, si vous placeztext-align: justify
dans un attribut de style en ligne pour untd
élément, il sera héritée partd:after
. Le problème, c'est que vous ne pouvez pas déclarertd:after
avec l'attribut de style en ligne; vous devez le faire dans la feuille de style.comme mentionné ci-dessus: ce n'est pas possible d'appeler un css pseudo-classe /élément inline.
ce que je fait, c'est:
donner votre élément identificateur unique, le f.ex. un id ou une classe unique.
et écrire un raccord
<style>
élémentmoche, mais ce que css n'est pas..?
scoped
styles et:root
pseudo-classe (c'est trop cool):<article><style scoped>:root:before { content: "*";}</style><!-- something --></article>
.:scope
pseudo-classe:<article><style scoped>:scope:before { content: "*";}</style><!-- something --></article>
scope
d styles) et CSS (:scope
). Je devrais avoir été plus clair.Pas, vous ne pouvez pas cibler les les pseudo-classes ou pseudo-éléments en ligne-css David Thomas dit.
Pour plus de détails, voir cette réponse par BoltClock sur Pseudo-classes
Nous pouvons aussi écrire à utiliser même pour les pseudo-éléments
Vous pouvez utiliser les données dans inline
data-content
attribut commecontent
pour un pseudo-élément. Il n'a rien à voir avec la création des pseudo-éléments avec du CSS.Oui c'est possible, il suffit d'ajouter des styles en ligne pour l'élément qui vous adjonction, après ou avant, Exemple
::after
et::before
pseudo-éléments ont besoin de lacontent: value
sinon, la valeur par défaut estcontent:none
qui résulte en rien sur le fond.Comme mentionné avant, vous ne pouvez pas utiliser les éléments en ligne pour le style pseudo-classes. Avant et après pseudo-classes sont des états d'éléments, pas d'éléments réels. Vous ne pourriez probablement utiliser
JavaScript pour cela.
Si vous avez le contrôle sur le code HTML, alors vous pourriez ajouter un élément réel au lieu d'un pseudo.
:before et :after pseudo-éléments sont rendus juste après la balise d'ouverture ou juste avant la balise de fermeture.
La ligne d'équivalent pour ce css
Serait quelque chose comme ceci:
Gardez à l'esprit, Votre "vrai" avant et après que les éléments et n'importe quoi avec du css permettra d'accroître considérablement la taille de vos pages et de les ignorer chargement de la page, les optimisations que css externe et de la pseudo-éléments rendent possible.