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 :

offset différent sous IE


Sujet :

JavaScript

  1. #1
    Membre actif Avatar de Braillane
    Profil pro
    Développeur Java
    Inscrit en
    Janvier 2007
    Messages
    212
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Janvier 2007
    Messages : 212
    Points : 203
    Points
    203
    Par défaut offset différent sous IE
    Bonjour, j'ai une table et je cherche son offset left.
    Dans mon CSS la table est comme ceci :
    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
    23
    24
    25
    #calendar {
    	position:absolute;
    	top:0px;
    	left:40px;
    	empty-cells:show;
    }
    #calendar th {
    	border-style:solid; 
    	border-width:1px; 
    	border-color:black;
    	background-color: pink;
    }
    #calendar .jour {
    	width:120px;
    	overflow:hidden;
    }
    #calendar td {
    	border-style:dashed; 
    	border-width:1px; 
    	border-color:black;
    }
    #calendar .heure {
    	width:40px;
    	font-size:12px;
    }
    Le problème est que
    alert (document.getElementById("calendar").offsetLeft);
    me retourne 43 sous IE et 40 sous FF...
    Comment cela se fait-il? Comment le corriger?

  2. #2
    Membre actif Avatar de Braillane
    Profil pro
    Développeur Java
    Inscrit en
    Janvier 2007
    Messages
    212
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Janvier 2007
    Messages : 212
    Points : 203
    Points
    203
    Par défaut
    j'ai compris ce qui fait la différence, c'est le border... IE ajoute le border-Left lors de son calcul de l'offsetLeft... Comment le corriger???

  3. #3
    Rédacteur
    Avatar de bigboomshakala
    Homme Profil pro
    Consultant Web .NET
    Inscrit en
    Avril 2004
    Messages
    2 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant Web .NET
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2004
    Messages : 2 077
    Points : 2 757
    Points
    2 757
    Par défaut
    ça ne se corrige pas. FF et IE n'ont pas le même rendu concernant les bordures et les padding. FF compte le padding et la bordure dans la taille, IE non. pour obtenir le même rendu sur les deux il faut parfois ruser.
    genre si c'est possible, au lieu de mettre une bordure à gauche, mettre un div de 1px de large avec un background

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 48
    Points : 18
    Points
    18
    Par défaut
    sinon si tu veux utiliser des librairies tu prends prototype js et tu fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Position.positionedOffset(elm)
    ou alors tu utilise ce code :
    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
    23
    24
    25
    26
    27
    28
    29
    30
    /*
    *fonctions qui renvoit la position (en pixel) à gauche de l'élément qui est passé en entrée
    * @param  l'élément
    *   return int number offsetGauche 
    */
    planning.calculeOffsetLeft=function(r){
      return planning.calculeOffset(r,"offsetLeft")
    }
     
    /*
    *fonctions qui renvoit la position (en pixel) top de l'élément qui est passé en entrée
    * @param  l'élément
    *   return int number offsetTop
    */
    planning.calculeOffsetTop=function(r){
      return planning.calculeOffset(r,"offsetTop")
    }
    /**************************************************************************
    *fonctions qui renvoit la position  de l'élément qui est passé en entrée
    *entree = l'élément, le coté à calculer
    *sortie= number 
    **************************************************************************/
    planning.calculeOffset=function(element,attr){
      var offset=0;
      while(element){
        offset+=element[attr];
        element=element.offsetParent
      }
      return offset
    }
    Les 2 solutions marche sous IE et FF

Discussions similaires

  1. getElementsByName resultat différent sous Ie et Firefox
    Par garfield657 dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 21/08/2006, 16h25
  2. copier différentes sous chaines dans un tableau
    Par chmaichel dans le forum Delphi
    Réponses: 9
    Dernier message: 20/07/2006, 14h20
  3. [CSS]Affichage différent sous IE et FF
    Par arnaud_verlaine dans le forum Mise en page CSS
    Réponses: 9
    Dernier message: 08/12/2005, 13h53
  4. Menu vertical différent sous FF et IE
    Par Myogtha dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 06/12/2005, 00h29

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