Pas suffisamment d'informations. Quelle est la largeur des couches?
Josh Stodola
8
Je préfère display: inline-blockces gars plutôt que de les faire flotter. Si leur largeur est au total inférieure à la largeur du conteneur, ils seront assis côte à côte.
@MikedeKlerk c'est un correctif, pour éviter que le parent ne s'effondre.
Angel Politis
comme @Nick Craver l'a expliqué, vous devez attribuer à tous vos éléments la propriété float: left . Cela se produit car la propriété float spécifie comment l'élément est placé le long du côté gauche ou droit de son conteneur parent .
Mais DIV est un élément de niveau bloc, non? Ensuite, comment se fait-il qu'ils soient placés côte à côte et non dans les lignes suivantes (car les éléments de niveau bloc commencent et se terminent par un saut de ligne). Le flotteur a-t-il également un autre effet?
Ashwin
26
les faire flotter tous à gauche
assurez-vous qu'une largeur est spécifiée pour qu'ils puissent tous tenir dans leur conteneur (soit un autre div ou la fenêtre), sinon ils envelopperont
ce code que quelqu'un a posté là-haut, il a fait l'affaire !!! lorsque je le colle juste avant de fermer le conteneur DIV, cela aide à effacer tous les DIV suivants de chevaucher avec les DIV que j'ai créés côte à côte en haut!
<div><divclass="left"></div><divclass="left"></div>
...
...
<divclass="left"></div><!-- then magic trick comes here --><brstyle="clear: left;"/></div>
Le fait est que ma réponse est la plus correcte et quand une nouvelle personne recherchera ce Q sur Internet, elle trouvera ma réponse qui lui sera la plus utile.
Arwen
2
CA se peut. Mais il manque d'explication. Il est autorisé sur ce site de copier d'autres réponses, en fusionnant plusieurs réponses partielles en une seule meilleure réponse combinée. Vous pouvez modifier et compléter le vôtre. Cependant, les nouveaux utilisateurs ont quelques restrictions (vote positif, peu de liens), donc je recommanderais toujours de ne pas se concentrer sur les anciennes questions et les réponses.
cfi
@cfi merci, je le garderai pour référence future.
Arwen
10
Je flotte généralement le premier à gauche, le second à droite. Le troisième s'aligne alors automatiquement entre eux.
Cela ne provoque-t-il pas des erreurs lorsque le navigateur est redimensionné?
CodyBugstein
10
<style>.left-column
{float:left;width:30%;background-color:red;}.right-column
{float:right;width:30%;background-color:green;}.center-column
{margin:auto;width:30%;background-color:blue;}</style><divid="container"><sectionclass="left-column">THIS IS COLUMN 1 LEFT</section><sectionclass="right-column">THIS IS COLUMN 3 RIGHT</section><sectionclass="center-column">THIS IS COLUMN 2 CENTER</section></div>
l'avantage de cette façon est que vous pouvez définir chaque largeur de colonne indépendamment de l'autre tant que vous la maintenez sous 100%, si vous utilisez 3 x 30%, les 10% restants sont divisés en un espace de séparation de 5% entre les colonnes
MISE À JOUR: Bien sûr, pour utiliser cette technique et en raison du positionnement absolu, vous devez enfermer les divs sur un conteneur et effectuer un post-traitement pour définir la hauteur de if, quelque chose comme ceci:
Bien sûr, pour utiliser cette technique et en raison du positionnement absolu, vous devez enfermer les divs sur un conteneur et faire un post-traitement pour définir la hauteur de if, quelque chose comme ceci:
jpbourbon
jQuery (document) .ready (function () {jQuery ('. main'). height (Math.max (jQuery ('. column-left'). height (), jQuery ('. column-right'). height (), jQuery ('. column-center'). height ()));}); Ce n'est pas la chose la plus étonnante au monde, mais au moins ne casse pas sur les anciens IE.
jpbourbon
4
Mais ça marche dans Chrome?
Flotter chaque div et mettre à l'écart; les deux pour la rangée. Pas besoin de définir des largeurs si vous ne le souhaitez pas. Fonctionne dans Chrome 41, Firefox 37, IE 11
<divclass="stack"><divclass="row"><divclass="col">
One
</div><divclass="col">
Two
</div></div><divclass="row"><divclass="col">
One
</div><divclass="col">
Two
</div><divclass="col">
Three
</div></div></div>
@Leniel cette méthode est bonne mais vous devez ajouter de la largeur à tous les div flottants. Je dirais de leur donner une largeur égale ou d'attribuer une largeur fixe. Quelque chose comme
.content-wrapper > div { width:33.3%;}
vous pouvez attribuer des noms de classe à chaque div plutôt que d'en ajouter inline style, ce qui n'est pas une bonne pratique.
Assurez-vous d'utiliser un div clearfix ou un clear div pour éviter de suivre le contenu qui reste en dessous de ces div.
Vous pouvez trouver des détails sur la façon d'utiliser clearfix div ici
display: inline-block
ces gars plutôt que de les faire flotter. Si leur largeur est au total inférieure à la largeur du conteneur, ils seront assis côte à côte.Réponses:
Donnez-leur simplement une largeur et
float: left;
voici un exemple:la source
<br style="clear: left;" />
ce style en particulier.La manière moderne consiste à utiliser la flexbox CSS , voir les tableaux de support .
Vous pouvez également utiliser la grille CSS , voir les tableaux de support .
la source
C'est la même manière que pour les deux divs, il suffit de faire flotter le troisième à gauche ou à droite aussi.
la source
les faire flotter tous à gauche
assurez-vous qu'une largeur est spécifiée pour qu'ils puissent tous tenir dans leur conteneur (soit un autre div ou la fenêtre), sinon ils envelopperont
la source
ce code que quelqu'un a posté là-haut, il a fait l'affaire !!! lorsque je le colle juste avant de fermer le conteneur DIV, cela aide à effacer tous les DIV suivants de chevaucher avec les DIV que j'ai créés côte à côte en haut!
tadaa !! :)
la source
Faites flotter les trois divisions vers la gauche. Comme ici:
la source
Je flotte généralement le premier à gauche, le second à droite. Le troisième s'aligne alors automatiquement entre eux.
la source
l'avantage de cette façon est que vous pouvez définir chaque largeur de colonne indépendamment de l'autre tant que vous la maintenez sous 100%, si vous utilisez 3 x 30%, les 10% restants sont divisés en un espace de séparation de 5% entre les colonnes
la source
vous pouvez flotter: à gauche pour chacun d'eux et définir la largeur à 33,333%
la source
essayez d'ajouter "display: block" au style
la source
Je n'ai pas vu la réponse bootstrap, donc pour ce que ça vaut:
laissez Bootstrap déterminer les pourcentages. J'aime effacer les deux, juste au cas où.
la source
Je préfère cette méthode, les flotteurs sont mal pris en charge dans les anciennes versions d'IE (vraiment? ...)
MISE À JOUR: Bien sûr, pour utiliser cette technique et en raison du positionnement absolu, vous devez enfermer les divs sur un conteneur et effectuer un post-traitement pour définir la hauteur de if, quelque chose comme ceci:
Ce n'est pas la chose la plus étonnante au monde, mais au moins ne casse pas sur les anciens IE.
la source
Mais ça marche dans Chrome?
Flotter chaque div et mettre à l'écart; les deux pour la rangée. Pas besoin de définir des largeurs si vous ne le souhaitez pas. Fonctionne dans Chrome 41, Firefox 37, IE 11
Cliquez pour JS Fiddle
HTML
CSS
la source
Voici comment j'ai réussi à faire quelque chose de similaire à ceci dans un
<footer>
élément:CSS:
la source
@Leniel cette méthode est bonne mais vous devez ajouter de la largeur à tous les div flottants. Je dirais de leur donner une largeur égale ou d'attribuer une largeur fixe. Quelque chose comme
vous pouvez attribuer des noms de classe à chaque div plutôt que d'en ajouter
inline style
, ce qui n'est pas une bonne pratique.Assurez-vous d'utiliser un div clearfix ou un clear div pour éviter de suivre le contenu qui reste en dessous de ces div.
Vous pouvez trouver des détails sur la façon d'utiliser clearfix div ici
la source