Опция 1
Используйте float:left
на обоих div
элементах и задайте% ширины для обоих элементов div с общей общей шириной 100%.
Используйте box-sizing: border-box;
для плавающих элементов div.Значение border-box заставляет отступы и границы в ширину и высоту, а не расширяет их.
Используйте clearfix на <div id="wrapper">
, чтобы очистить плавающие дочерние элементы, которые сделают 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
элементах и задайте% ширины для обоих элементов div с общей общей шириной 100%.
И снова (аналогично float:left
пример) используйте box-sizing: border-box;
на элементах div.Значение border-box заставляет отступы и границы в ширину и высоту, а не расширяет их.
ПРИМЕЧАНИЕ. * В элементах inline-block могут быть проблемы с пробелами, поскольку на них влияют пробелы в HTMLразметки.Больше информации здесь: https://css -tricks.com / боевые действия в пространстве-между-блок-элементами /
#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