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 :

Priopriété div parmi flottant


Sujet :

CSS

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2012
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 83
    Points : 56
    Points
    56
    Par défaut Priopriété div parmi flottant
    Bonjour j'ai plusieurs div qui s'empilent vers le bas et j'aimerais que dans l'une d'elle un élément flotte à droite mais quand je fais ça les div qui suivent remontent à gauche de l'élement qui flotte. Y aurait il une méthode pour ce type de mise en page sans utiliser de float clear ?
    Merci d'avance.

    DIVG
    DIVG
    DIVG-----DIGD
    DIVG

    et je voudrais
    DIVG
    DIVG
    -------------DIVD
    DIVG
    DIVG

  2. #2
    Membre chevronné

    Homme Profil pro
    Ingénieur Hospitalier
    Inscrit en
    Juillet 2004
    Messages
    993
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Hospitalier
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 993
    Points : 1 768
    Points
    1 768
    Billets dans le blog
    1
    Par défaut
    Salut pour se passer de float ou de clear il y a la margin-right margin-left qui complétera pour obtenir 100% de la width de la page, le mieux c'est un exemple : tu peux utiliser la propriété CSS calc(100% - difference en px) pour être sur du calcul du pourcentage.

    Html :

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <div class="gauche">1</div>
    <div class="gauche">2</div>
    <div class="gauche">3</div>
    <div class="droite">4</div>
    <div class="gauche">5</div>

    Css :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    .droite{
      background-color:blue;
      width:50%;
      margin-left:50%;
    }
    .gauche{
      width:50%;
      background-color:yellow;
      margin-right:50%;
    }
    Démo :
    https://codepen.io/headmax/pen/ZaaWjy

  3. #3
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    16 959
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 959
    Points : 44 122
    Points
    44 122
    Par défaut
    Bonjour,
    Y aurait il une méthode pour ce type de mise en page sans utiliser de float clear ?
    peut être en revoyant la structure de la page, mais
    pourquoi vouloir s'en passer à tout prix ?

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    une solution :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <div id="wrapper">
      <div>1</div>
      <div>2</div>
      <div>3</div>
      <div class="droite">4</div>
      <div>5</div>
    </div>
    Code css : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    #wrapper {
      display:-webkit-flex; display:flex; 
      -webkit-flex-direction:column; flex-direction:column; 
      -webkit-justify-content:flex-start; justify-content:flex-start; 
    }
    #wrapper > div {
     -webkit-flex:0 0 50%; flex:0 0 50%; 
     width:50%; 
     background-color:yellow;
    }
    #wrapper > div.droite {
      /*margin-left:50%;*/
      -webkit-align-self:flex-end; align-self:flex-end; 
      background-color:lightblue;
    }
    Dernière modification par Invité ; 18/11/2017 à 12h13.

  5. #5
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    16 959
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 959
    Points : 44 122
    Points
    44 122
    Par défaut
    Salut Jérôme,
    peut être plus judicieux d'utiliser align-self: flex-end pour l'élément allant à droite.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    #wrapper {
      display: flex;
      flex-direction: column;
      justify-content: flex-start;
    }
    #wrapper > div {
      flex: 0 0 50%;
      width: 50%;
      background-color: yellow;
    }
    #wrapper > div.droite {
      align-self: flex-end;
      background-color: lightblue;
    }

  6. #6
    Invité
    Invité(e)
    Par défaut
    Tout-à-fait !

    J'avais zappé cette instruction !
    Je n'ai pas bien lu le guide flexbox jusqu'au bout


    C'est décidément très puissant...

Discussions similaires

  1. [RegEx] regex capturer une div parmis d'autres
    Par guest4541 dans le forum Langage
    Réponses: 6
    Dernier message: 22/07/2016, 14h00
  2. Style sur première div parmis d'autres
    Par guest4541 dans le forum Mise en page CSS
    Réponses: 7
    Dernier message: 21/07/2016, 20h21
  3. Déterminer le dernier DiV parmi plusieurs DIV
    Par xxnameless dans le forum jQuery
    Réponses: 3
    Dernier message: 15/07/2016, 19h06
  4. Afficher un seul div parmi tous ceux d'une page
    Par G-First dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 14/04/2009, 10h21
  5. Image flottante et <div>
    Par KneXtasY dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 05/07/2005, 17h32

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