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 :

Firefox et style - propriete border vide


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juillet 2002
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 15
    Par défaut Firefox et style - propriete border vide
    Bonjour à tous,

    Je souhaite récupérer la valeur d'une propriété CSS via Javascript.

    HTML :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <div id="monDiv"></div>
    CSS :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    div#monDiv {
      border-width:1px;
    }
    Javascript :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var toto = document.getElementById("monDiv").style.borderWidth;
    Sous IE, pas de problème, je récupère la valeur, par contre sous FireFox, pas de valeur, j'ai une chaîne vide à la place et pour que cette donnée soit correctement renseignée, je dois utiliser l'attribut style de ma balise div.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <div id="monDiv" style="border-width:1px;"></div>
    J'ai tenté une recherche sur le forum, mais je n'ai pas trouvé de réponse sur la façon de résoudre ce problème.

    Merci de votre réponse.

  2. #2
    Membre Expert
    Avatar de gwyohm
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2007
    Messages
    925
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 925
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.defaultView.getComputedStyle(document.getElementById("monDiv"), null).borderWidth

  3. #3
    Membre averti
    Inscrit en
    Juillet 2002
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 15
    Par défaut
    Merci pour cette réponse, mais malheureusement cela ne change rien. voici le code complet de ma page :

    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
    19
    20
    21
    22
     
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
        <title>Page type</title>
        <script type="text/javascript">
        function init() {
    		alert(document.defaultView.getComputedStyle(document.getElementById("monDiv"),null).borderWidth);
    	}
    	</script>
    	<style type="text/css">
    		div#monDiv {
    			border-width: 1px;
    			border-color: #000000;
    			border-style: solid; 
    		}
    	</style>
    </head>
    <body onload="init();">
      <div id="monDiv">bla bla</div>
    </body>
    </html>
    Ma version de Firefox : 3.5.5

  4. #4
    Membre averti
    Inscrit en
    Juillet 2002
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 15
    Par défaut
    Le problème semble venir des propriétés CSS "border", car en faisant un test avec d'autres propriétés, je ne rencontre pas de problème.

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    354
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Février 2009
    Messages : 354
    Par défaut
    essaye ca

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
     
    var getStyle = function(/*DOMObject*/element, /*string*/rule){//peux etre definit en globale car très utilise, aucune dépendance...
        var camelRule=rule.replace(/\-(\w)/g, function (strMatch, p1){return p1.toUpperCase();}),//supprime les tiré et met en majuscule la lettre suivante
            value = element.style[camelRule];
        if (!value){
            if(document.defaultView && document.defaultView.getComputedStyle){
                value = document.defaultView.getComputedStyle(element, "").getPropertyValue(/*fait l inverse de camelRule*/rule.replace(/[A-Z]/g, function(match){return '-'+match.charAt(0).toLowerCase();}));
            }else{//specifique ie
                value = element.currentStyle[camelRule] ;
            }
        }
        return value == 'auto' ? undefined : value;
    };
    Cependant les retours des paddings , margins, et borders diffère en fonction du navigateur.
    Pour certain il ne retourneront pas un simple padding , mais il faudra être plus précis en indiquant la direction (padding-left).

  6. #6
    Membre averti
    Inscrit en
    Juillet 2002
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 15
    Par défaut
    J'ai compris mon problème :

    En fait, sous firefox, il faut effectivement accéder à chaque côté ("right", "left", "top", "bottom") du bloc :

    pour la bordure je dois donc par exemple utiliser :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    document.defaultView.getComputedStyle(
                    document.getElementById("monDiv"), null).borderRightWidth;
    Pour récupérer l'épaisseur de la bordure droite et ainsi de suite avec les autres côtés du bloc.

    Merci pour votre aide !

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

Discussions similaires

  1. Firefox 8 réinitialise certains icônes vides
    Par cylere dans le forum Firefox
    Réponses: 3
    Dernier message: 27/11/2011, 14h01
  2. [css] border-style
    Par youbyoub dans le forum Mise en page CSS
    Réponses: 9
    Dernier message: 09/01/2006, 21h21
  3. [HTML][CSS] Attribut BorderColor et style Border-Color
    Par David.V dans le forum Mise en page CSS
    Réponses: 3
    Dernier message: 29/07/2005, 09h54
  4. Pb style display avec Firefox mal appliqué
    Par frochard dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 13/07/2005, 23h48
  5. [] Datagrid vide après modification des propriétés
    Par SpaceFrog dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 20/09/2002, 16h37

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