Option 1
Utilisez float:left
sur les deux div
et définissez une largeur de % pour les deux éléments div avec une largeur totale combinée de 100 %.
Utilisez box-sizing: border-box;
sur les éléments div flottants. La valeur border-box force le remplissage et les bordures dans la largeur et la hauteur au lieu de les étendre.
Utilisez clearfix sur le <div id="wrapper">
pour effacer les éléments enfants flottants, ce qui permettra de mettre à l'échelle la div wrapper à la hauteur correcte.
.clearfix:after {
content: " ";
visibility: hidden;
display: block;
height: 0;
clear: both;
}
#first, #second{
box-sizing: border-box;
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
}
#wrapper {
width: 500px;
border: 1px solid black;
}
#first {
border: 1px solid red;
float:left;
width:50%;
}
#second {
border: 1px solid green;
float:left;
width:50%;
}
http://jsfiddle.net/dqC8t/3381/
Option 2
Utilisez position:absolute
sur un élément et une largeur fixe sur l'autre élément.
Ajouter position:relative à <div id="wrapper">
pour que les éléments enfants soient absolument positionnés par rapport à l'élément <div id="wrapper">
élément.
#wrapper {
width: 500px;
border: 1px solid black;
position:relative;
}
#first {
border: 1px solid red;
width:100px;
}
#second {
border: 1px solid green;
position:absolute;
top:0;
left:100px;
right:0;
}
http://jsfiddle.net/dqC8t/3382/
Option 3
Utilisez display:inline-block
sur les deux div
et définissez une largeur de % pour les deux éléments div avec une largeur totale combinée de 100 %.
Et encore (comme float:left
exemple) utiliser box-sizing: border-box;
sur les éléments div. La valeur border-box force le remplissage et les bordures dans la largeur et la hauteur au lieu de les étendre.
NOTE : Les éléments inline-block peuvent avoir des problèmes d'espacement car ils sont affectés par les espaces dans le balisage HTML. Plus d'informations ici : https://css-tricks.com/fighting-the-space-between-inline-block-elements/
#first, #second{
box-sizing: border-box;
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
}
#wrapper {
width: 500px;
border: 1px solid black;
position:relative;
}
#first {
width:50%;
border: 1px solid red;
display:inline-block;
}
#second {
width:50%;
border: 1px solid green;
display:inline-block;
}
http://jsfiddle.net/dqC8t/3383/
Une dernière option serait d'utiliser la nouvelle option d'affichage appelée flex, mais notez que la compatibilité des navigateurs peut entrer en jeu :
http://caniuse.com/#feat=flexbox
http://www.sketchingwithcss.com/samplechapter/cheatsheet.html
5 votes
Aussi : stackoverflow.com/questions/446060/
34 votes
#wrapper { display: flex; }
0 votes
Duplicata possible de CSS deux divs l'un à côté de l'autre