opcja 1
Użyj float:left
na obu div
elementach i ustaw% szerokości dla obu elementów div o łącznej szerokości 100%.
Użyj box-sizing: border-box;
na pływających elementach div. Wartość border-box wymusza wypełnienie i obramowanie na szerokość i wysokość zamiast go rozszerzać.
Użyj clearfix na, <div id="wrapper">
aby usunąć pływające elementy potomne, które sprawią, że otoki otoki będą skalowane do właściwej wysokości.
.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/
Opcja 2
Użyj position:absolute
na jednym elemencie i stałej szerokości na drugim elemencie.
Dodaj pozycję: względem <div id="wrapper">
elementu, aby elementy potomne były absolutnie pozycjonowane względem <div id="wrapper">
elementu.
#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/
Opcja 3
Użyj display:inline-block
na obu div
elementach i ustaw% szerokości dla obu elementów div o łącznej szerokości 100%.
I znowu (tak jak w float:left
przykładzie) użyj box-sizing: border-box;
na elementach div. Wartość border-box wymusza wypełnienie i obramowanie na szerokość i wysokość zamiast go rozszerzać.
UWAGA: w elementach bloku wbudowanego mogą występować problemy z odstępami, ponieważ wpływ na to mają spacje w znacznikach HTML. Więcej informacji tutaj: 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/
Ostatnią opcją byłoby użycie nowej opcji wyświetlania o nazwie flex, ale należy pamiętać, że do gry może wejść kompatybilność przeglądarki:
http://caniuse.com/#feat=flexbox
http://www.sketchingwithcss.com/samplechapter/cheatsheet.html