J'ai essayé de diviser un div en deux colonnes en utilisant CSS, mais je n'ai pas encore réussi à le faire fonctionner. Ma structure de base est la suivante:
<div id="content">
<div id="left">
<div id="object1"></div>
<div id="object2"></div>
</div>
<div id="right">
<div id="object3"></div>
<div id="object4"></div>
</div>
</div>
Si j'essaie de faire flotter les divs droite et gauche à leurs positions respectives (droite et gauche), il semble ignorer la couleur d'arrière-plan du div contenu. Et d'autres codes que j'ai essayés à partir de divers sites Web ne semblent pas pouvoir se traduire dans ma structure.
Merci pour toute aide!
Réponses:
Lorsque vous faites flotter ces deux divs, la div de contenu se réduit à une hauteur nulle. Il suffit d'ajouter
après le #right div mais à l'intérieur du content div. Cela forcera la division de contenu à entourer les deux div internes flottants.
la source
Cela fonctionne bien pour moi. J'ai divisé l'écran en deux moitiés: 20% et 80%:
la source
Une autre façon de procéder consiste à ajouter
overflow:hidden;
à l'élément parent des éléments flottants.overflow: hidden fera grossir l'élément pour s'adapter aux éléments flottants.
De cette façon, tout peut être fait en css plutôt que d'ajouter un autre élément html.
la source
overflow:auto;
peut parfois être une meilleure optionLa manière la plus flexible de procéder:
Cela revient exactement à ajouter l'élément à #content:
mais sans ajouter réellement d'élément. :: after est appelé un pseudo élément. La seule raison pour laquelle cela est meilleur que l'ajout
overflow:hidden;
à #content est que vous pouvez avoir des éléments enfants positionnés en absolu débordant et être toujours visibles. En outre, cela permettra à la boîte-ombre d'être toujours visible.la source
#content:after
(juste un deux-points au lieu de deux) ... Si je me souviens bien, il est plus approprié d'utiliser deux points-points pour les pseudo éléments, mais les IE plus anciens ne le reconnaissent que s'il en a un. ... ou quelque chose comme ça - cela fait un certain temps que je n'ai pas traité de cette question.Aucune des réponses données ne répond à la question initiale.
La question est de savoir comment séparer un div en 2 colonnes en utilisant css.
Toutes les réponses ci-dessus incorporent en fait 2 divs dans un seul div afin de simuler 2 colonnes. C'est une mauvaise idée car vous ne pourrez pas diffuser de contenu dans les 2 colonnes de manière dynamique.
Donc, au lieu de ce qui précède, utilisez un seul div défini pour contenir 2 colonnes en utilisant CSS comme suit ...
assignez ce qui précède en tant que classe à un div, et il diffusera en fait son contenu dans les 2 colonnes. Vous pouvez aller plus loin et définir également les écarts entre les marges. En fonction du contenu de la div, vous devrez peut-être modifier les valeurs de saut de mot pour que votre contenu ne soit pas coupé entre les colonnes.
la source
Pour une raison quelconque, je n'ai jamais aimé les approches de compensation, je compte sur des flotteurs et des largeurs en pourcentage pour des choses comme celle-ci.
Voici quelque chose qui fonctionne dans des cas simples:
Si vous mettez du contenu, vous verrez que cela fonctionne:
Vous pouvez le voir ici: http://cssdesk.com/d64uy
la source
Faites des divs enfants
inline-block
et ils se positionneront côte à côte:Voir la démo
la source
Je sais que cet article est ancien, mais si l'un d'entre vous est toujours à la recherche d'une solution plus simple.
la source
Meilleur moyen de diviser un div verticalement -
la source
Vous pouvez utiliser flexbox pour contrôler la disposition de votre élément div:
la source
Les flotteurs n'affectent pas le débit. J'ai tendance à ajouter un
à la fin du 'wrapping div' (dans ce cas, le contenu). Je peux justifier cela sur une base sémantique en disant qu'un tel paragraphe pourrait être nécessaire. Une autre approche consiste à utiliser un CSS clearfix:
La supercherie avec les commentaires concerne la compatibilité entre navigateurs.
la source
La meilleure réponse à cette question est ici Question 211383
De nos jours, toute personne qui se respecte devrait utiliser l'approche dite «micro-clearfix» de défrichage des flotteurs.
la source
Définissez le pourcentage de largeur pour chacun des DIV enfants.
* Dans Safari, vous devrez peut-être définir 49% pour que cela fonctionne.
la source
Diviser une division en deux colonnes est très simple, il suffit de spécifier la largeur de votre colonne mieux si vous mettez ceci (comme width: 50%) et définissez le float: left pour la colonne de gauche et float: right pour la colonne de droite.
la source
#column { overflow:auto; width: 100%; } #column50pleft, #column50pright{ width: 49%; margin:2px; padding: 0.5%; background: white; } #column50pleft { float:left; } #column50pright { float:right; } HTML: <div id="column"> <div id="column50pleft"> </div> <div id="column50pright"> </div> </div>