IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

JS CSS : impossible de styler un href ?


Sujet :

JavaScript

  1. #1
    Membre confirm�
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    121
    D�tails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Mai 2008
    Messages : 121
    Par d�faut JS CSS : impossible de styler un href ?
    Salut,
    Voil� un truc de ouf : pourquoi est-il impossible, via JavaScript, de r�cup�rer la valeur de l'attribut color d'une balise href ?

    Comment faites-vous ?
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    <!DOCTYPE html>
    <head>
    <title>TEST</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <script>
    	function monalerte(coucou) {
    		var toto = document.getElementById(coucou).style.color ;
    		alert(toto);
    		}
    </script>
    <style>
    	a:link, a:active, a:visited {color:black;}
    	a:hover {color:rgb(000,000,255);}
    </style>
    </head>
    <body>
    	<a href="#" id="monid" onMouseOver="monalerte(this.id);">mon lien</a>
    </body>
    Merci.

  2. #2
    Expert confirm�
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 100
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 36
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activit� : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 100
    Par d�faut
    Il y a deux raisons.

    La premi�re, c'est qu'en JavaScript, la propri�t� style refl�te l'attribut HTML style d'un �l�ment donn�. J'emploie les mots propri�t� et attribut dans un sens pr�cis : la propri�t� est ce que tu manipules en JavaScript ; l'attribut est ce qui se trouve dans le code HTML. La propri�t� className refl�te l'attribut class.

    Par exemple, si tu as ce code HTML :
    Code html : S�lectionner tout - Visualiser dans une fen�tre � part
    <a style="color: green">lien</a>
    En consultant sa propri�t� style dans la console F12, on obtient ceci :
    Code JS : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    >> document.querySelector("a").style
    CSS2Properties { color: "green" }

    L'attribut style n'est qu'une partie de l'ensemble des styles appliqu�s � l'�l�ment. C'est au moteur CSS de d�terminer cet ensemble. JavaScript n'a, de base, pas connaissance de toutes les informations de style de chaque �l�ment, car �a demanderait trop de temps de calcul. Il existe des situations o� le moteur JS fait appel au moteur CSS : quand tu acc�des � une propri�t� du genre clientWidth, offsetLeft, etc. ou quand tu le demandes explicitement � l'aide de la fonction getComputedStyle :
    Code JS : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    >> getComputedStyle(document.querySelector("a"))
    CSS2Properties { align-content: "stretch", align-items: "stretch", align-self: "stretch", animation-delay: "0s",
    animation-direction: "normal", animation-duration: "0s", animation-fill-mode: "none", animation-iteration-count: "1",
    animation-name: "none", animation-play-state: "running", 227 de plus… }

    (Comme tu peux le voir, �a fait beaucoup de r�gles de style.)
    En faisant ceci, tu peux acc�der � la r�gle color effectivement appliqu�e � ton lien. Mais �a ne correspondra pas forc�ment � sa v�ritable couleur, et cela � cause de la� Seconde raison.

    La seconde raison concerne uniquement la pseudoclasse :visited. Les navigateurs donnent toujours la couleur d'un lien comme s'il n'�tait pas visit�, car sa v�ritable couleur ferait fuiter une information sur la vie priv�e de l'utilisateur.
    Imagine que tu visites une page sur laquelle il y a des liens vers des sites sensibles (contenu adulte, opposition politique, etc.), et que le script de cette page est en mesure de dire lesquels tu as visit�s. Pire, il peut envoyer cette information via Ajax vers une base de donn�es. C'�tait une faille de s�curit� qui a �t� corrig�e en 2011. Voir : Privacy and the :visited Selector
    La FAQ JavaScript � Les cours JavaScript
    Touche F12 = la console → l�outil indispensable pour d�velopper en JavaScript !

  3. #3
    R�dacteur/Mod�rateur

    Avatar de SpaceFrog
    Homme Profil pro
    D�veloppeur Web Php Mysql Html Javascript CSS Apache - Int�grateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activit� : D�veloppeur Web Php Mysql Html Javascript CSS Apache - Int�grateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par d�faut
    A savoir �galement que les balises a sont des balises particuli�res qui h�ritent de styles particuliers pour des raison ergonomiques, mise en exergue du lien, du survol du lien , lien visit� ...

    ces style se g�rent en css avec les pseudo classes :hover, :link, :visited pour overrider les style d'ergonomie du navigateur
    Ma page Developpez - Mon Blog Developpez
    Pr�sident du CCMPTP (Comit� Contre le Mot "Probl�me" dans les Titres de Posts)
    Deux r�gles du succ�s: 1) Ne communiquez jamais � quelqu'un tout votre savoir...
    Votre post est r�solu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de D�veloppez !

  4. #4
    Membre confirm�
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    121
    D�tails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Mai 2008
    Messages : 121
    Par d�faut
    Merci Watilin pour ces explications tr�s pr�cises.

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. Interpretation CSS impossible par Firefox, et IE7
    Par amateur_will dans le forum Mise en page CSS
    R�ponses: 4
    Dernier message: 05/01/2008, 08h43
  2. Centrer plusieurs images en CSS, impossible ?
    Par koskoz dans le forum Mise en page CSS
    R�ponses: 4
    Dernier message: 03/08/2006, 22h55
  3. Lecture valeurs CSS impossible :s
    Par balti dans le forum G�n�ral JavaScript
    R�ponses: 1
    Dernier message: 02/09/2005, 21h32
  4. coller une img � un div en css: impossible?
    Par Martyin dans le forum Mise en page CSS
    R�ponses: 5
    Dernier message: 13/12/2004, 11h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo