Comment faire en sorte que div "gauche" et "droite" ressemblent à des colonnes côte à côte?
Je sais que je peux utiliser float: laissé dessus et cela fonctionnera ... mais aux étapes 5 et 6 ici http://www.barelyfitz.com/screencast...s/positioning/ . le gars dit que c'est possible, je ne peux pas le faire fonctionner si ...
Code:
<style>
div.left {
background:blue;
height:200px;
width:300px;
}
div.right{
background:green;
height:300px;
width:100px;
}
.container{
background:black;
height:400px;
width:450px;
}
</style>
<div class="container">
<div class="left">
LEFT
</div>
<div class="right">
RIGHT
</div>
</div>
La méthode habituelle lorsque vous n’utilisez pas float
s est d’utiliser display: inline-block
: http://www.jsfiddle.net/zygnz/1/
.container div {
display: inline-block;
}
Notez cependant ses limites: il y a un espace supplémentaire après le premier bloc - car les deux blocs sont maintenant essentiellement des éléments inline
, comme a
et em
, donc des espaces entre les deux comptages. Cela risquerait de casser votre mise en page et/ou de ne pas sembler agréable, et je préférerais ne pas supprimer tous les espaces entre les caractères pour des raisons de travail.
Les flotteurs sont également plus souples, dans la plupart des cas.
Un div
est un élément de niveau de bloc , ce qui signifie qu'il se comportera comme un bloc et que les blocs ne peuvent pas rester côte à côte sans être flottants. Vous pouvez cependant les définir sur éléments en ligne avec:
display:inline-block;
Essaie...
Une autre façon est de les placer en utilisant:
position:absolute;
left:0;
et/ou
position:absolute;
right:0;
Remarque: Pour que cela fonctionne comme prévu, l'élément wrapper doit avoir un position:relative;
afin que les éléments avec positionnement absolu restent relatifs à leur élément wrapper.
Vous pouvez également utiliser CSS3 flexbox
layout, qui est bien supporté de nos jours.
.container {
display: flex;
flex-flow: row nowrap;
justify-content: space-between;
background:black;
height:400px;
width:450px;
}
.left {
flex: 0 0 300px;
background:blue;
height:200px;
}
.right {
flex: 0 1 100px;
background:green;
height:300px;
}
Voir Exemple (avec les styles existants pour une compatibilité maximale) & En savoir plus à propos de flexbox.
Je travaille actuellement sur ce problème et j’ai déjà un certain nombre de solutions . C’est bien d’avoir un site de haute qualité, que je peux aussi utiliser pour ma commodité . Parce que si vous n’écrivez pas ces choses , vous finirez par oublier certaines parties ... Et je peux également vous recommander d’écrire quelques notions de base si vous démarrez un nouveau type de programmation/conception.
Donc, si les fonctions float posent des problèmes, vous pouvez essayer plusieurs options.
La première consiste à modifier l’alignement de div dans la balise div elle-même comme suit <div class="kosher" align=left>
Si cela ne vous convient pas, il existe une autre option avec une marge comme celle-ci.
.leftdiv {
display: inline-block;
width: 40%;
float: left;
}
.rightdiv {
display: block;
margin-right: 20px;
margin-left: 45%;
}
N'oubliez pas de supprimer le <div align=left>
.
Vous pouvez essayer avec marge pour droite div
margin: -200px 0 0 350px;
Utilisez display:table-cell;
pour supprimer l'espace entre .Left et .Right
div.left {
background:blue;
height:200px;
width:300px;
}
div.right{
background:green;
height:300px;
width:100px;
}
.container{
background:black;
height:400px;
width:450px;
}
.container > div {
display: table-cell;
}
<div class="container">
<div>
<div class="left">
LEFT
</div>
</div>
<div>
<div class="right">
RIGHT
</div>
</div>
</div>