Opción 1
Usar float:left
en ambosdiv
elementos y establezca un ancho% para ambos elementos div con un ancho total combinado de 100%.
Utilizar box-sizing: border-box;
en los elementos div flotantes. El valor border-box fuerza el relleno y los bordes al ancho y alto en lugar de expandirlo.
Use clearfix en el <div id="wrapper">
para borrar los elementos secundarios flotantes que harán que la escala div del envoltorio tenga la altura correcta.
.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/
opcion 2
Utilizar position:absolute
en un elemento y un ancho fijo en el otro elemento.
Agregar posición: relativo al <div id="wrapper">
elemento para que los elementos secundarios se posicionen absolutamente en el <div id="wrapper">
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/
Opción 3
Úselo display:inline-block
en ambos div
elementos y establezca un ancho% para ambos elementos div con un ancho total combinado de 100%.
Y de nuevo (igual que float:left
ejemplo) use box-sizing: border-box;
en los elementos div. El valor border-box fuerza el relleno y los bordes al ancho y alto en lugar de expandirlo.
NOTA: los elementos de bloque en línea pueden tener problemas de espacio ya que se ven afectados por los espacios en el marcado HTML. Más información aquí: 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/
Una opción final sería usar la nueva opción de visualización llamada flex, pero tenga en cuenta que la compatibilidad del navegador podría entrar en juego:
http://caniuse.com/#feat=flexbox
http://www.sketchingwithcss.com/samplechapter/cheatsheet.html