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 :

[IE] clear:both ignoré


Sujet :

CSS

  1. #1
    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 : 40
    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 [IE] clear:both ignoré
    Bonjour à tous.

    La manière dont IE gère la hauteur des éléments me laisse coi.
    D'un côté, le conteneur d'un élément flottant voit sa hauteur augmenter alors qu'elle ne devrait pas, de l'autre mon problème.

    Voici le code incriminé, rendu au plus simplisme :

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <div style="background:#f00">
       <div style="float:left;width:400px;background:#0f0">
          Texte<br />Texte<br />Texte
       </div>
       <br style="clear:both" />
    </div>
    Sur Firefox, on voit bien le clear agir et la hauteur de l'élément parent s'ajuste à la hauteur des élément enfants.
    En revanche, sur IE (6, 7 et les prochains à venir), l'élément parent ne prend en compte que la hauteur du <br> ...

    Si quelqu'un a une solution pour faire entendre raison à ce malheureux ...


  2. #2
    Rédacteur
    Avatar de MasterOfChakhaL
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2004
    Messages
    2 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 147
    Points : 3 264
    Points
    3 264
    Par défaut
    Salut,

    A mon avis, le problème, à mon avis, vient du br, car avec un hr, ca marche bien (il faut bien sur revoir les styles).
    J'ai essayé pas mal de propriété (position, overflow, margin, height) pour essayer d'imposer un contenu...

    Je suppose que le problème vient du fait qu'un br n'introduit aucun élément visuel dans la page et que IE l'ignore donc.

    Même l'attribut obsolète clear="both" ne change rien à l'affaire.

    Je crois qu'il va falloir assumer de trouver un autre élément pour placer le clear (je trouve que le hr n'est pas si éloigné que ca du br niveau sémantique)
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    N'oubliez pas de cliquer sur quand votre question à trouvé une solution.

    Si vous n'avez pas encore lu les règles du club, mieux vaut tard que jamais!

  3. #3
    Membre expert
    Avatar de trotters213
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 571
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 571
    Points : 3 145
    Points
    3 145
    Par défaut

    A y être pourquoi ne pas "recréer" ton propre br par le biais d'un div vide auquel tu donnes simplement une hauteur et que tu déclares en clear:both?
    C'est pas mieux qu'un hr auquel tu modifies le style ?

  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 : 40
    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 MasterOfChakhaL
    A mon avis, le problème, à mon avis, vient du br, car avec un hr, ca marche bien (il faut bien sur revoir les styles).
    J'ai essayé pas mal de propriété (position, overflow, margin, height) pour essayer d'imposer un contenu...
    Bien joué, ça fonctionne effectivement avec un <hr>, suffit juste de modifier son style.

    Citation Envoyé par MasterOfChakhaL
    Même l'attribut obsolète clear="both" ne change rien à l'affaire.
    Normal c'est clear="all".

    Citation Envoyé par MasterOfChakhaL
    Je suppose que le problème vient du fait qu'un br n'introduit aucun élément visuel dans la page et que IE l'ignore donc.
    Ce qui me pertrube le plus, c'est que pour une fois, IE n'assume pas le fait d'ajuster la hauteur de l'élément parent en fonction de ses enfants ...

    Citation Envoyé par trotters213
    A y être pourquoi ne pas "recréer" ton propre br par le biais d'un div vide auquel tu donnes simplement une hauteur et que tu déclares en clear:both?
    L'intérêt n'est pas de donner une hauteur fixe au <br>, sinon il aurait suffit de donner une hauteur fixe au conteneur. :/
    Et justement, la hauteur de l'élément est variable.

  5. #5
    Membre émérite
    Avatar de Candygirl
    Femme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 912
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 51
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 912
    Points : 2 907
    Points
    2 907
    Par défaut
    Citation Envoyé par Bisûnûrs
    Ce qui me pertrube le plus, c'est que pour une fois, IE n'assume pas le fait d'ajuster la hauteur de l'élément parent en fonction de ses enfants ...
    Il ne le fait pas parce que ton div parent n'a pas le layout. Si tu rajoutes un width de 100% sur ton div englobant, par exemple, ce dernier descendra jusqu'au bas des flottants, même sans clear.

    Autrement tu peux appliquer toute propriété qui crèe un nouveau contexte de formatage (float, position abolute, overflow, display table, inline-bloc,...) à ton div conteneur afin qu'il s'étende avec les flottants sans avoir à ajouter un clear.
    Les bons réflexes:
    • avant de poser une question:
      règles | faq | tutoriels | recherche
    • clarté, politesse, vocabulaire et orthographe soignés = efficacité
    • remercier ceux qui ont pris le temps d'aider et si c'est le cas

  6. #6
    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 : 40
    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 Candygirl
    Il ne le fait pas parce que ton div parent n'a pas le layout. Si tu rajoutes un width de 100% sur ton div englobant, par exemple, ce dernier descendra jusqu'au bas des flottants, même sans clear.

    Autrement tu peux appliquer toute propriété qui crèe un nouveau contexte de formatage (float, position abolute, overflow, display table, inline-bloc,...) à ton div conteneur afin qu'il s'étende avec les flottants sans avoir à ajouter un clear.
    Ca marche en effet si je rajoute un width à mon div conteneur ...

    Merci beaucoup pour tes conseils, tu es toujours d'une grande aide.

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

Discussions similaires

  1. Clear : both, oui mais
    Par Daddy91 dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 17/09/2007, 14h38
  2. clear: both; est mort ?
    Par {F-I} dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 26/08/2007, 00h22
  3. Un clear:both qui marche pas ?!
    Par bblampain dans le forum Mise en page CSS
    Réponses: 5
    Dernier message: 16/08/2007, 09h20
  4. Limiter la portée d'un style="clear:both"
    Par Bizen-Ya dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 05/04/2007, 16h13
  5. Probleme de clear:both
    Par intrud3r dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 11/12/2005, 10h42

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