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 :

Différence style.width / propriété DOM offsetWidth


Sujet :

JavaScript

  1. #1
    Membre habitué
    Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    182
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 182
    Points : 186
    Points
    186
    Par défaut Différence style.width / propriété DOM offsetWidth
    Je voudrais pouvoir paramétrer dynamiquement la largeur des colonnes d'un tableau html.
    pour cela j'utilise tout simplement la propriété style.width de l'objet cell (TD) comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     var td = table.rows[0].cells[3]; // (colonne 4 de la ligne 1)
     td.style.width = "115px";
    Mais lorsque je regarde ensuite la valeur du offsetWidth de mon objet cell j'obtiens 126 ???
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     var td = table.rows[0].cells[3]; // (colonne 4 de la ligne 1)
     alert(td.offsetWidth);
    Une idée du pourquoi du comment??

  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 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 637
    Points : 66 656
    Points
    66 656
    Billets dans le blog
    1
    Par défaut
    le contenu force la cellule à s'elargir?
    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 habitué
    Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    182
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 182
    Points : 186
    Points
    186
    Par défaut
    Non il y a pratiquement rien dedans...
    Pour plus de précisions le tableau a cette tete :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    +-----------------------------------------+
    |                 entete                  |
    +------+------+------+-------+------------+
    |  col1|col2  | col3 |  col4 |  col5      |
    +------+------+------+-------+------------+
    (je suis nul en dessin ascii désolé)
    bref, en gros la cellule entete est une cellule avec un colSpan de 5 et un width non précisé,
    et toutes les autres je les ai forcée à style.width=115px et pourtant tout leur offsetWidth est à 126 !?

  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 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 637
    Points : 66 656
    Points
    66 656
    Billets dans le blog
    1
    Par défaut
    soit tu as mis un width au table ou les colonnes ont du contenu qui force la largeur.

    le offsetWidth est la largeur effective
    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
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 418
    Points
    91 418
    Billets dans le blog
    20
    Par défaut
    Il faut aussi prendre en compte les marges et les bordures
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  6. #6
    Membre habitué
    Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    182
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 182
    Points : 186
    Points
    186
    Par défaut
    cellpadding et cellspacing sont à 0...
    Je veux bien prendre 1px pour chaque bordure, mais de là a passer de 115 à 126, c'est quand même énorme. Et puis le width de la table n'es pas renseigné.
    Je ne comprends pas.

  7. #7
    Membre habitué
    Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    182
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 182
    Points : 186
    Points
    186
    Par défaut
    Oups, désolé, ma réponse est trouvée grâce à l'onglet "Apparence" de FireBug, il s'agit bien de l'addition du (padding de 5)x2 + une bordure de 1px...
    Désolé du dérangement.

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

Discussions similaires

  1. Redimensionnement div.style width/height
    Par stroumfs dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 07/04/2009, 17h59
  2. Différence entre les propriétés String et Value des objets Uicontrol
    Par occor dans le forum Interfaces Graphiques
    Réponses: 1
    Dernier message: 18/01/2008, 12h13
  3. getElementById().style.Width
    Par PrinceMaster77 dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 24/07/2007, 16h49
  4. Problème de compatibilité pour [style="width:100%;] sur
    Par Furius dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 12/01/2006, 17h19
  5. [CSS] "td width=" et "div style=width:"
    Par akecoocoo dans le forum Mise en page CSS
    Réponses: 4
    Dernier message: 10/11/2005, 16h33

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