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

Mise en page CSS Discussion :

Dimension de div non respectée par Firefox


Sujet :

Dimensionnement en CSS

  1. #1
    Membre régulier
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2003
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Septembre 2003
    Messages : 70
    Points : 73
    Points
    73
    Par défaut Dimension de div non respectée par Firefox
    Je veux mettre une image sur la droite, qui change lorsque l'on est dessus, avec un lien.

    Sous IE j'ai pas de problème, le résultat est ok. Par contre sur Firefox, mon image est à gauche et le lien est sur toute la largeur de la page comme si la largeur de mon div était ignorée.

    Voici le code html

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <div class="commentaire">
    Commentaires sur Le Forum ici
    <a href="../forum/viewtopic.php?t=236">
    <div id="img-forum" onMouseOver="javascript: id='img-forum_up';" onMouseOut="javascript: id='img-forum';"></div>
    </a>
    </div>
    Et le code dans mon fichier css

    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
    .commentaire
    {
    Text-Align: right;
    Font-Size: 10pt;
    Font-Family: Verdana,Arial,Helvetica,sans-serif;
    Font-Weight: bold;
    Color:#FFCC99;
    Margin: 10px;
    }
     
    #img-forum
    {
    Width: 70px;
    Height: 70px;
    Cursor: pointer;
    Background-image:url("images/forum.jpg");
    Background-position: center center;
    Background-repeat: no-repeat;
    }
     
    #img-forum_up
    {
    Width: 70px;
    Height: 70px;
    Cursor: pointer;
    Background-image:url("images/forum_up.jpg");
    Background-position: center center;
    Background-repeat: no-repeat;
    }
    Je n'ai malheureusement rien trouvé qui me donne au moins une piste de recherche pour comprendre ce comportement

  2. #2
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    La balise <a> prend sous FF toute la dimension de son parent, ici c'est le div de classe commentaire. Sa taille est fixe par les margin donc oui c'est normal qu'il prenne toute la page.

    Si tu veux, tu peux invertir l'ordre <a><div></div></a> et mettre <div><a></a></div>

    En mettant le width et le height du <a> à 100% pour qu'il prenne toute la largeur/hauteur du div

  3. #3
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 650
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 650
    Points : 11 142
    Points
    11 142
    Par défaut
    bonjour,

    encadrer un div d'une balise a

    Citation Envoyé par Kerod
    Si tu veux, tu peux invertir l'ordre <a><div></div></a> et mettre <div><a></a></div>
    C'est ce qu'il y a de mieux à faire

    Citation Envoyé par Kerod
    En mettant le width et le height du <a> à 100% pour qu'il prenne toute la largeur/hauteur du div
    Ca ne marchera pas avec tous les navigateurs. Les dimensions du lien dépend du contenu, on ne peut pas fixer les dimensions de ce genre de balise.

    Le mieux est d'utiliser les scripts:
    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
     
    <html>
    <head>
    <title></title>
    <style type="text/css">
    <!--
    .styleOver{
     color: #0000FF;
     text-decoration: underline;
     cursor: pointer;
    }
    .styleOut{
     color: #000000;
     text-decoration: none;
     cursor: default;
    }
    //-->
    </style>
     
    </head>
     
    <body>
     
    <div class="styleOut" onclick="document.location.href='page.htm'" onmouseover="this.className='styleOver'" onmouseout="this.className='styleOut'">
    bla bla bla bla
    </div>
     
    </body>
     
    </html>

  4. #4
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 868
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 868
    Points : 16 258
    Points
    16 258
    Par défaut
    Citation Envoyé par Auteur
    Ca ne marchera pas avec tous les navigateurs. Les dimensions du lien dépend du contenu, on ne peut pas fixer les dimensions de ce genre de balise.
    Sauf si on passe la balise <a> en block :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    #monDiv{
       width:200px;
       height:100px;
       background:red;
    }
    #monDiv a{
       display:block;
       width:100%;
       height:100%;
    }
    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    <div id="monDiv"><a href="monlien">Texte</a></div>

  5. #5
    Membre actif
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    241
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 241
    Points : 267
    Points
    267
    Par défaut
    Salut,

    Citation Envoyé par Bisûnûrs
    Sauf si on passe la balise <a> en block :
    +1

    Sachant que dans ce cas le width:100%; n'est plus utile car <a> aura la largeur par défaut du comportement block soit width:auto; = toute la largeur disponible du parent.

    C'est non seulement non utile mais fortement déconseillé en raison du fonctionnement du modèle de boite standard :
    Si d'aventure on mettait un border-left de 5 px à <a> alors celui ci aurait une largeur de 100% + 5px

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

Discussions similaires

  1. balise div non visible par getElementById
    Par bluemartini dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 20/05/2010, 11h12
  2. Hauteurs boites non respectées par IE6
    Par boutmos dans le forum Mise en page CSS
    Réponses: 1
    Dernier message: 05/02/2010, 12h30
  3. cnfidentialité non respectée par la barre d'adresse
    Par XC22ASPEN3 dans le forum Firefox
    Réponses: 1
    Dernier message: 18/02/2009, 08h43
  4. Fichier css non reconnu par Firefox
    Par equilibres dans le forum Mise en page CSS
    Réponses: 3
    Dernier message: 10/02/2009, 08h50
  5. Réponses: 7
    Dernier message: 24/11/2008, 15h55

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