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 :

Accès au css depuis javascript


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2011
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2011
    Messages : 33
    Par défaut Accès au css depuis javascript
    Bonjour,

    J'aimerais calculer la taille des marges autour d'un de mes objets html.
    Mon objet est déclaré de cette manière dans mon fichier html :
    Le code css est situé dans une feuille de style à part :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    #viewer
    {
    	width : 100%;
    	height : 100%;
    	margin-left : 300px;
    	margin-right : 0px;
    }
    Au sein de mon fichier javascript j'effectue la boucle suivante afin de calculer la somme des marges des objets contenant mon objet viewer (seul mon objet viewer possède une marge dans le cas actuel) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    var offsetTop = 0;
    var offsetLeft = 0;
    var p = document.getElementById('viewer');			
    while(p.style != undefined){
       offsetTop += p.style.marginTop;
       offsetLeft += p.style.marginLeft;
       p = p.parentNode;
    }
    A la suite de cela, offsetLeft devrait contenir 300. Hors il ne contient rien. La valeur de p.style.marginLeft de mon objet viewer a pour valeur "undefined" quand je l'affiche dans la console.

    Par contre si je place le css dans le fichier html comme suit, tout marche bien :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <div id="viewer" style="width:100%;height:100%;margin-left:300px;margin-right:0px"></div>
    Pourquoi ne puis-je pas accèder au css si il se trouve dans une feuille de style externe au html ?

    Merci de vos réponses

    Cordialement

    David

  2. #2
    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 658
    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 658
    Billets dans le blog
    1
    Par défaut
    a quoi ça sert ça ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    while(p.style != undefined){
    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 !

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2011
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2011
    Messages : 33
    Par défaut
    A chaque fois je récupère le conteneur parent afin de vérifier si celui-ci a une valeur différente de zéro dans ses propriétés marges. J'utilise :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    while(p.style != undefined){
    afin de vérifier s'il existe encore un objet père. Si la propriété style existe alors c'est un objet html (document, page, div etc..). Sinon si la propriété n'existe pas alors cela veut dire que l'on est remonté trop haut, on a donc atteint le dernier conteneur (document), on s'arrête alors.

  4. #4
    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 658
    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 658
    Billets dans le blog
    1
    Par défaut
    A chaque fois je récupère le conteneur parent
    tu es dans une boucle ?

    tu ne nous montre pas le code entier ?
    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 !

  5. #5
    Expert confirmé
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 094
    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 094
    Par défaut
    Moi je trouve que ça ressemble à de l'attente active... Boucler pour attendre quelque chose n'est pas une bonne façon de faire en JS, en général.

    https://developer.mozilla.org/en/DOM...tComputedStyle
    La FAQ JavaScript – Les cours JavaScript
    Touche F12 = la console → l’outil indispensable pour développer en JavaScript !

  6. #6
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2011
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2011
    Messages : 33
    Par défaut
    Excusé moi mais j'ai du mal à vous suivre ^^ ....
    Où voyez vous de l'attente ? ^^

    Je n'attends jamais, à partir d'un div donné, je vérifie si se div a une marge, si oui j'enregistre sa valeur. Une fois cela fait je récupère le div parent, (soit le div qui contient notre premier div) Je vérifie alors si il possède une marge .. etc

    Jusqu'à arriver au conteneur le plus haut dans la hiérarchie, soit document sauf erreur.
    Afin de savoir si p.parentNode n'est pas null (en d'autre mot savoir si p est contenu par un autre élément html et donc que je n'ai pas encore atteint le conteneur le plus haut dans la hiérarchie) j'accède à une propriété du conteneur afin de savoir si elle existe. Si c'est le cas cela signifie que l'élément parent existe. J'ai choisi style, mais j'aurais pu choisir autre chose. Si la propriété existe c'est que j'ai bien récupéré un élément html.
    J'avais trouvé cette exemple sur internet, cela fonctionne bien.

  7. #7
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Watilin Voir le message
    Moi je trouve que ça ressemble à de l'attente active...
    Je ne savais même pas que ça existait !
    Ca veut dire "aller se chercher une bière pendant les pubs, en attendant que le film recommence" ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 10/12/2007, 22h02
  2. Accés à java depuis javascript
    Par kodo dans le forum Autres
    Réponses: 2
    Dernier message: 28/09/2006, 20h25
  3. Accès serveur WEB depuis l'internet
    Par Ultra-FX dans le forum Réseau
    Réponses: 2
    Dernier message: 26/05/2005, 17h00
  4. [servlet] feuille de styme css et javascript
    Par bob33 dans le forum Servlets/JSP
    Réponses: 9
    Dernier message: 24/03/2004, 08h08

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