J'ai un cas où je dois écrire du code CSS en ligne et je veux appliquer un style de survol sur une ancre.
Comment puis-je utiliser a:hover
le CSS en ligne dans l'attribut de style HTML?
Par exemple, vous ne pouvez pas utiliser de manière fiable les classes CSS dans les e-mails HTML.
html
css
inline-styles
Amr Elgarhy
la source
la source
Réponses:
Réponse courte: vous ne pouvez pas.
Réponse longue: vous ne devriez pas.
Donnez-lui un nom de classe ou un identifiant et utilisez des feuilles de style pour appliquer le style.
:hover
est un pseudo-sélecteur et, pour CSS , n'a de sens que dans la feuille de style. Il n'y a pas d'équivalent de style en ligne (car il ne définit pas les critères de sélection).Réponse aux commentaires du PO:
Voir Totally Pwn CSS avec Javascript pour un bon script sur l'ajout dynamique de règles CSS. Voir également Modifier la feuille de style pour une partie de la théorie sur le sujet.
N'oubliez pas non plus, vous pouvez ajouter des liens vers des feuilles de style externes si c'est une option. Par exemple,
Attention: ce qui précède suppose qu'il y a une section de tête .
la source
style="{color:green;} :hover { color: red; }"
et firefox a réussi à colorer le lien en vert, mais j'ai ignoré le survol. Chrome a ignoré les deux. La poursuite des tests serait assez inutile.Vous pouvez obtenir le même effet en modifiant vos styles avec JavaScript dans les paramètres
onMouseOver
etonMouseOut
, bien qu'il soit extrêmement inefficace si vous devez modifier plusieurs éléments:De plus, je ne me souviens pas avec certitude si cela
this
fonctionne dans ce contexte. Vous devrez peut-être le changer avecdocument.getElementById('idForLink')
.la source
<div onMouseOver="this.style.backgroundColor='#F8F8F8'" onMouseOut="this.style.backgroundColor='#FFFFFF'"> ...
Vous pourriez le faire à un moment donné dans le passé. Mais maintenant (selon la dernière révision de la même norme, qui est la recommandation du candidat), vous ne pouvez pas.
la source
<a href="http://www.w3.org/" style="{color: #900} :link {background: #ff0} :visited {background: #fff} :hover {outline: thin red solid} :active {background: #00f}">...</a>
Mais cela n'a pas fonctionnéJe suis extrêmement en retard pour contribuer à cela, mais j'étais triste de voir que personne ne l'a suggéré, si vous avez réellement besoin de code en ligne, c'est possible. J'en avais besoin pour certains boutons de survol, la méthode est la suivante:
Dans ce cas, le code en ligne: "background-color: red;" est la couleur du commutateur au survol, mettez la couleur dont vous avez besoin là-dedans, puis cette solution fonctionne. Je me rends compte que ce n'est peut-être pas la solution parfaite en termes de compatibilité, mais cela fonctionne si c'est absolument nécessaire.
la source
Vous ne pouvez pas faire exactement ce que vous décrivez, car il
a:hover
fait partie du sélecteur, pas des règles CSS. Une feuille de style a deux composants:Les styles en ligne n'ont que des règles; le sélecteur est implicitement l'élément courant.
Le sélecteur est un langage expressif qui décrit un ensemble de critères pour faire correspondre les éléments d'un document de type XML.
Cependant, vous pouvez vous rapprocher, car un
style
ensemble peut techniquement aller presque n'importe où:la source
<html> </html>
baliseen utilisant Javascript:
a) Ajout d'un style en ligne
b) ou une méthode un peu plus difficile - ajouter "survol"
Remarque: les styles multi-mots (ie
font-size
) en Javascript sont écrits ensemble :element.style.fontSize="12px"
la source
Ceci est le meilleur exemple de code:
Suggestion du modérateur: Gardez votre séparation des préoccupations.
HTML
JS
la source
Les déclarations de pseudoclasse en ligne ne sont pas prises en charge dans l'itération actuelle de CSS (bien que, d'après ce que je comprends, cela pourrait venir dans une future version).
Pour l'instant, votre meilleur pari est probablement de simplement définir un bloc de style directement au-dessus du lien que vous souhaitez styliser:
la source
Comme indiqué, vous ne pouvez pas définir de styles en ligne arbitraires pour le survol, mais vous pouvez changer le style du curseur de survol en CSS en utilisant ce qui suit dans la balise appropriée:
la source
Le survol est une pseudo-classe et ne peut donc pas être appliqué avec un attribut de style. Il fait partie du sélecteur.
la source
Tu peux le faire. Mais pas dans les styles en ligne. Vous pouvez utiliser
onmouseover
etonmouseout
événements:la source
Selon vos commentaires, vous envoyez quand même un fichier JavaScript. Faites le survol en JavaScript. La méthode de jQuery
$.hover()
facilite les choses, comme tout autre wrapper JavaScript. Ce n'est pas trop difficile en JavaScript simple non plus.la source
Il n'y a aucun moyen de le faire. Vos options sont d'utiliser un JavaScript ou un bloc CSS.
Il existe peut-être une bibliothèque JavaScript qui convertira un attribut de style propriétaire en un bloc de style. Mais alors, le code ne sera pas conforme aux normes.
la source
Je viens de trouver une solution différente.
Mon problème: j'ai une
<a>
balise autour de certaines diapositives / visualiseur de contenu principal ainsi que des<a>
balises dans le pied de page. Je veux qu'ils aillent au même endroit dans IE, donc tout le paragraphe serait soulignéonHover
, même s'il ne s'agit pas de liens: la diapositive dans son ensemble est un lien. IE ne connaît pas la différence. J'ai également des liens réels dans mon pied de page qui nécessitent le soulignement et le changement de couleuronHover
. Je pensais que je devrais mettre les styles en ligne avec les balises de pied de page pour changer la couleur, mais les conseils ci-dessus suggèrent que cela est impossible.Solution: J'ai donné aux liens de pied de page deux classes différentes et mon problème a été résolu. J'ai pu avoir le
onHover
changement de couleur dans une classe, avoir les diapositivesonHover
sans changement / soulignement de couleur, et toujours avoir le HREFS externe dans le pied de page et les diapositives en même temps!la source
Je suis d'accord avec l' ombre . Vous pouvez utiliser l' événement
onmouseover
etonmouseout
pour modifier le CSS via JavaScript.Et ne dites pas que les gens doivent activer JavaScript. Ce n'est qu'un problème de style, donc peu importe s'il y a des visiteurs sans JavaScript;) Bien que la plupart du Web 2.0 fonctionne avec JavaScript. Voir Facebook par exemple (beaucoup de JavaScript) ou Myspace .
la source
C'est assez tard dans le jeu, mais quand utiliseriez-vous JavaScript dans un e-mail HTML? Par exemple, dans l'entreprise pour laquelle je travaille actuellement (rime avec Abodee), nous utilisons le plus petit dénominateur commun pour la plupart des campagnes de marketing par e-mail - et JavaScript n'est tout simplement pas utilisé. Déjà. Sauf si vous faites référence à une sorte de prétraitement.
Comme mentionné dans un article connexe: "Lotus Notes, Mozilla Thunderbird, Outlook Express et Windows Live Mail semblent tous prendre en charge une sorte d'exécution JavaScript. Rien d'autre ne le fait."
Lien vers l'article dont cela provient: [ http://en.wikipedia.org/wiki/Comparison_of_e-mail_clients]
De plus, comment le vol stationnaire se traduirait-il sur les appareils mobiles? C'est pourquoi j'aime la réponse d'en haut:
Long answer: you shouldn't.
Si quelqu'un a plus d'informations sur ce sujet, n'hésitez pas à me corriger. Je vous remercie.
la source
Donc, ce n'est pas tout à fait ce que l'utilisateur recherchait, mais j'ai trouvé cette question à la recherche d'une réponse et j'ai trouvé quelque chose de similaire. J'avais un tas d'éléments répétitifs qui avaient besoin d'une nouvelle couleur / survoler pour un onglet en leur sein. J'utilise le guidon, qui est la clé de ma solution, mais d'autres langages de modèles peuvent également fonctionner.
J'ai défini quelques couleurs et les ai passées dans le modèle de guidon pour chaque élément. En haut du modèle, j'ai défini une balise de style et mis ma classe personnalisée et ma couleur de survol.
Ensuite, j'ai utilisé le style dans le modèle:
Vous n'avez peut-être pas besoin du
!important
la source
vous pouvez écrire un code de différents types
je peux d'abord écrire ceci
html
css
vous pouvez essayer d'une autre manière
html
css
vous pouvez également essayer de survoler en jquery
script java
html
dans ce code, vous avez une fonction à trois dans jquery d'abord, vous préparez une fonction qui est la base de la fonction de jquery, ensuite, vous avez une fonction de survol dans cette fonction lorsque vous survolez un pointeur sur le texte, la couleur sera modifiée, puis la suivante le lorsque vous relâchez le pointeur sur le texte, ce sera la couleur différente et c'est la troisième fonction
la source
C'est désormais possible avec Hacss .
la source
J'ai dû éviter le javascript, mais je pouvais aller avec du code côté serveur.
J'ai donc généré un identifiant, créé un bloc de style, généré le lien avec cet identifiant. Oui, son code HTML valide.
la source
Vous ne pouvez utiliser la pseudo-classe que
a:hover
dans des feuilles de style externes. Par conséquent, je recommande d'utiliser une feuille de style externe. Le code est:la source
style
balise.Vous pouvez faire id en ajoutant une classe mais jamais en ligne.
2 lignes mais vous pouvez réutiliser la classe partout.
la source
Mon problème était que je construis un site Web qui utilise beaucoup d'icônes d'images qui doivent être échangées par une image différente en survol (par exemple, les images bleues deviennent rouges en survolant). J'ai produit la solution suivante pour cela:
J'ai introduit un conteneur contenant la paire d'images. Le premier est visible et l'autre est masqué (affichage: aucun). Lors du survol du conteneur, le premier devient masqué (affichage: aucun) et le second réapparaît (affichage: bloc).
la source