opzione 1
Utilizzare float:left
su entrambidiv
elementi e impostare una larghezza% per entrambi gli elementi div con una larghezza totale combinata del 100%.
Uso box-sizing: border-box;
sugli elementi div fluttuanti. Il valore border-box forza il riempimento e i bordi in larghezza e altezza invece di espanderlo.
Utilizzare clearfix su <div id="wrapper">
per cancellare gli elementi figlio mobili che porteranno la scala div dell'involucro all'altezza corretta.
.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/
opzione 2
Uso position:absolute
su un elemento e una larghezza fissa sull'altro elemento.
Aggiungi posizione: relativa <div id="wrapper">
all'elemento per rendere gli elementi figlio assolutamente posizionati <div id="wrapper">
sull'elemento.
#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/
Opzione 3
Utilizzare display:inline-block
su entrambi gli div
elementi e impostare una larghezza% per entrambi gli elementi div con una larghezza totale combinata del 100%.
E ancora (come float:left
nell'esempio) utilizzare box-sizing: border-box;
sugli elementi div. Il valore border-box forza il riempimento e i bordi in larghezza e altezza invece di espanderlo.
NOTA: gli elementi inline block possono avere problemi di spaziatura poiché sono influenzati dagli spazi nel markup HTML. Maggiori informazioni qui: 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/
Un'ultima opzione sarebbe quella di utilizzare la nuova opzione di visualizzazione denominata flex, ma nota che la compatibilità del browser potrebbe entrare in gioco:
http://caniuse.com/#feat=flexbox
http://www.sketchingwithcss.com/samplechapter/cheatsheet.html