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 :

methodologie d'espacement entre les elements


Sujet :

CSS

  1. #1
    Membre éclairé Avatar de pop_up
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    877
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 877
    Points : 786
    Points
    786
    Par défaut methodologie d'espacement entre les elements
    Bonjour,

    Je voulais avoir votre avis sur la meilleure méthode et la meilleure solution afin d'espacer les éléments. Je m'explique :
    Il arrive souvent qu'on définisse des espacements inférieurs sur les éléments <p> (avec un padding-bottom par exemple) pour qu'apres un paragraphe, on ait un petit espace.
    Mais parfois les espacements dépendent de l'élément qui suit.
    Si par exemple, j'ai une liste qui suit, je ne veux pas d'espacement en plus mais si je met un titre <h2>, je voudrai un gros espacement. Aucun problème me direz vous, il suffit de mettre un padding-top au h2. Oui mais si mon h2 suit un h1 alors le padding-bottom de mon h1 va se cumuler avec le padding-top de mon h2 non ?

    Vous faites comment en général ?

    merci

  2. #2
    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
    Salut Pop-up
    pour commencer padding n'est pas la propriété la plus appropriée pour espacer des éléments même si cela présente l'avantage d'éviter les problèmes liés à la fusion des marges, voire certain bug de rendu comme le Doubled Float Margin bug. Ils sont fait pour créer un espacement entre le bord de la boîte et la zone de contenu.
    Les padding verticaux ne fusionnent pas contrairement aux marges, ils se cumulent systématiquement.

    Pour ma part pour simplifier les chose et éviter de faire des calculs dus à la fusion des marges, s'aggissant des paragraphe par exemple, j'annule la marge haute par default et je place une marge basse en em pour que celle-ci s'agrandisse proportionneljement à la taille du texte (margin: 0 0 1em; par exemple}. Pour les titres je met une marge haute supérieure à la marge basse,
    pour des raisons de mise en page (margin: 2em 0 1em;)

  3. #3
    Membre éclairé Avatar de pop_up
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    877
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 877
    Points : 786
    Points
    786
    Par défaut
    Merci erwan pour ta reponse. En fait cette question me vient car les clients ont souvent des besoin contradictoire du style :
    besoin 1 : vouloir un espacement de 1em sous tous les paragraphes
    besoin 2 : si le paragraphe est suivi d'une liste alors pas d'espacement
    besoin 3 : les listes non precedés d'un paragraphes doivent avoir un espacement supérieur de 1em

    du coup c'est un peut contradictoire et je vais pas m'amuser à mettre parfois des padding-top et parfois des padding-bottom. c'est pour ça que je me demandai si en général pour le dessus et le dessus d'un élément, il n'était pas préférable d'utiliser le margin afin de fusionner les marges (ce qui ne règlera pas ce problème ^^)


  4. #4
    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
    Tu as moyen de cibler uniquement certains éléments dans certains cas de figure via les pseudo-classe :first-child et les sélecteurs de frères adjacents:
    besoin 2 : si le paragraphe est suivi d'une liste alors pas d'espacement
    Ce qui pourrait se traduire (en supposant que la p ait une marge basse de 1em)
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    p + ul {margin-top:-1em}
    mais cela ne fonctionnera pas sous IE6 sur lequel il faudra prévoir une alternative (à defaut d'une solution JS > voir la bibliothèque que propose Dean Edwards) ou une dégradation acceptable.

Discussions similaires

  1. Menu CSS vertical, petit espace entre les images sous IE
    Par Death83 dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 24/10/2005, 09h52
  2. pb d'espacement entre les frames
    Par skayro dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 26/04/2005, 11h11
  3. Elever l'espace entre les cellules
    Par bdaboah dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 20/04/2005, 14h12
  4. Espacement entre les ligne d'un tableau
    Par Flobel dans le forum Mise en page CSS
    Réponses: 9
    Dernier message: 02/11/2004, 09h33
  5. Espace entre les miliers ex : 12 000
    Par Tchenouleur dans le forum Bases de données
    Réponses: 4
    Dernier message: 04/06/2004, 10h50

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