Опция 1
Используйте float:left
оба div
элемента и установите% width для обоих элементов div с общей общей шириной 100%.
Используйте box-sizing: border-box;
на плавающих элементах div. Значение border-box заставляет отступы и границы в ширину и высоту, а не расширяет их.
Используйте clearfix, <div id="wrapper">
чтобы очистить плавающие дочерние элементы, которые сделают div div масштабируемым до правильной высоты.
.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/
Вариант 2
Используйте position:absolute
для одного элемента и фиксированной ширины для другого элемента.
Добавьте позицию: относительно <div id="wrapper">
элемента, чтобы сделать дочерние элементы абсолютно позиционными к <div id="wrapper">
элементу.
#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/
Вариант 3
Используйте display:inline-block
оба div
элемента и установите% width для обоих элементов div с общей общей шириной 100%.
И снова (так же, как в float:left
примере) использовать box-sizing: border-box;
элементы div. Значение border-box заставляет отступы и границы в ширину и высоту, а не расширяет их.
ПРИМЕЧАНИЕ: элементы inline-block могут иметь проблемы с пробелами, поскольку на них влияют пробелы в разметке HTML. Более подробная информация здесь: 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/
Последний вариант - использовать новую опцию отображения с именем flex, но учтите, что в игру может войти совместимость с браузером:
http://caniuse.com/#feat=flexbox
http://www.sketchingwithcss.com/samplechapter/cheatsheet.html