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 :

Taille d'élément et doctype [CSS 2.1]


Sujet :

CSS

  1. #1
    Membre émérite Avatar de franculo_caoulene
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 880
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 880
    Points : 2 953
    Points
    2 953
    Par défaut Taille d'élément et doctype
    Salut à tous,

    Une bien étrange chose m'arrive. Tout d'abord veuillez trouver ce petit code illustrant mon problème :
    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
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <!--<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">-->
    <html xmlns="http://www.w3.org/1999/xhtml" lang="fr">
    <head>
      <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
      <title>Taille d objet changeant selon le doctype</title>
      <style type="text/css">
      * {margin:0; padding:0; border-style:none; text-decoration:none; color:#333;}
      ul {padding:10px; border:1px solid #666; background:#aaa; overflow:auto; list-style-type:none;}
      li {float:left;}
      a {margin:2px; padding:4px; display:block; border:1px solid #777; background:#888;}
      img {margin:0; padding:0; width:66px; height:66px;}
      </style>
    </head>
    <body>
      <ul>
        <li><a href=""><img src="img/photo-miniature.jpg" alt="photo" /></a></li>
      </ul>
    </body>
    </html>
    Vous l'avez peut-être remarqué, il y a un doctype en commentaire. En fait, j'ai développé ceci en xhtml transitional, puis je me suis dit, vu mon code, que je pouvais passer en xhtml strict. C'est alors que l'accident arrive.
    Sous FF, Opera et Safari la hauteur du contenu de l'élément <a> change! Celle-ci passe de 66px à 71px. Or, l'image, elle, reste à 66px. Les marges externe et interne ainsi que les bordures restent identiques (tout ceci dixit firebug).
    Sait-on jamais, l'image de départ fait 80x80. IE, quant à lui, ne change rien.

    Auriez-vous une quelconque explication?

    Merci d'avance.

  2. #2
    Rédacteur
    Avatar de Macmillenium
    Homme Profil pro
    Développeur front-end
    Inscrit en
    Mars 2008
    Messages
    2 333
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur front-end
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mars 2008
    Messages : 2 333
    Points : 3 748
    Points
    3 748
    Par défaut
    Bonjour,

    La différence entre ces deux DTD :
    XHTML Transitional : bascule les navigateurs en mode de rendu almost standard
    XHTML Strict : bascule les navigateurs en mode de rendu standard.

    La différence entre ces deux modes de rendu est souvent très légère.

    Pour ton cas, le comportement correcte est celui du mode standard, comme je l'ai dit plus haut, déclenché par ton doctype strict.

    Une image est un élément inline aligné par défaut en vertical-align:baseline et se comporte comme du texte en laissant une marge en dessous pour certains caractères comme p ou q.

    Tu peux corriger ce problème en ajoutant un display:block sur l'image ou en changeant son alignement avec un vertical-align:middle;

  3. #3
    Membre émérite Avatar de franculo_caoulene
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 880
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 880
    Points : 2 953
    Points
    2 953
    Par défaut
    Très bien joué, bravo et merci. J'ai toujours du mal à me souvenir qu'une image est de type en-ligne.

  4. #4
    Rédacteur
    Avatar de Macmillenium
    Homme Profil pro
    Développeur front-end
    Inscrit en
    Mars 2008
    Messages
    2 333
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur front-end
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mars 2008
    Messages : 2 333
    Points : 3 748
    Points
    3 748
    Par défaut
    Un petit détail, sous IE, les deux DTD Transitional et Strict déclenchent le mode Almost standard (pas de mode standard sous IE).
    La raison pour laquelle le rendu est resté le même.

  5. #5
    Membre émérite Avatar de Erwan31
    Profil pro
    Inscrit en
    Février 2008
    Messages
    2 177
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 2 177
    Points : 2 444
    Points
    2 444
    Par défaut
    Citation Envoyé par franculo_caoulene Voir le message
    Très bien joué, bravo et merci. J'ai toujours du mal à me souvenir qu'une image est de type en-ligne.
    De type en-ligne mais remplacé (comme les input par exemple).

    @Macmillénium Je ne crois pas que le mode almost standard existe pour IE, je dirais que son mode standard se comporte comme le mode almost standard des navigateurs Gecko, webkit et presto (Opera), mais à confirmer

  6. #6
    Rédacteur
    Avatar de Macmillenium
    Homme Profil pro
    Développeur front-end
    Inscrit en
    Mars 2008
    Messages
    2 333
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur front-end
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mars 2008
    Messages : 2 333
    Points : 3 748
    Points
    3 748
    Par défaut
    Citation Envoyé par Erwan31 Voir le message
    @Macmillénium Je ne crois pas que le mode almost standard existe pour IE, je dirais que son mode standard se comporte comme le mode almost standard des navigateurs Gecko, webkit et presto (Opera), mais à confirmer
    Peut-être, difficile de faire la différence vu que c'est le même comportement ...

    Ce qui est sûr c'est que IE8 (RC1 en tout cas) intègre les 3 modes de rendu Quirks, mode standard de IE7 (probablement Almost standard) et mode standard (jusqu'à présent j'ai pas rencontré de problème avec ce mode de IE8 mais on verra bien).

  7. #7
    Membre émérite Avatar de franculo_caoulene
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 880
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 880
    Points : 2 953
    Points
    2 953
    Par défaut
    Citation Envoyé par Erwan31 Voir le message
    De type en-ligne mais remplacé
    Justement qu'est-ce que ça change?

  8. #8
    Rédacteur
    Avatar de Macmillenium
    Homme Profil pro
    Développeur front-end
    Inscrit en
    Mars 2008
    Messages
    2 333
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur front-end
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mars 2008
    Messages : 2 333
    Points : 3 748
    Points
    3 748
    Par défaut
    Citation Envoyé par franculo_caoulene Voir le message
    Justement qu'est-ce que ça change?
    Les éléments inline remplacé (comme img, input, select) ont un comportement proche des éléments de type block, c'est à dire, la possibilité d'attribuer une largeur/hauteur, des marges internes/externes etc.

  9. #9
    Membre émérite Avatar de franculo_caoulene
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 880
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 880
    Points : 2 953
    Points
    2 953
    Par défaut
    C'est justement le "etc." qui est intéressant. Auriez-vous une source à citer, que je regarde?

  10. #10
    Rédacteur
    Avatar de Macmillenium
    Homme Profil pro
    Développeur front-end
    Inscrit en
    Mars 2008
    Messages
    2 333
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur front-end
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mars 2008
    Messages : 2 333
    Points : 3 748
    Points
    3 748
    Par défaut
    Citation Envoyé par franculo_caoulene Voir le message
    Auriez-vous une source à citer, que je regarde?
    Oui,


    les spécifications css2.1

  11. #11
    Membre émérite Avatar de franculo_caoulene
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 880
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 880
    Points : 2 953
    Points
    2 953
    Par défaut
    Tiens, je ne m'étais jamais trop attardé sur ce chapitre, merci encore.

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

Discussions similaires

  1. Taille des éléments site web
    Par csik78 dans le forum Mise en page CSS
    Réponses: 8
    Dernier message: 30/06/2012, 01h57
  2. Ecrire dans un fichier en fonction de la taille des éléments
    Par michel42 dans le forum Général Python
    Réponses: 2
    Dernier message: 03/05/2012, 16h54
  3. [Exchange 2003] Taille des éléments d'une boîte aux lettres.
    Par Richard_35 dans le forum Exchange Server
    Réponses: 0
    Dernier message: 20/10/2010, 11h59
  4. Réponses: 13
    Dernier message: 18/08/2010, 10h52
  5. Expand et taille des éléments
    Par flo_k dans le forum GTK+ avec C & C++
    Réponses: 4
    Dernier message: 30/05/2008, 19h00

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