Рассмотрим следующий код:
#wrapper {
width: 500px;
border: 1px solid black;
}
#first {
width: 300px;
border: 1px solid red;
}
#second {
border: 1px solid green;
}
<div id="wrapper">
<div id="first">Qaru is for professional and enthusiast programmers, people who write code because they love it.</div>
<div id="second">When you post a new question, other users will almost immediately see it and try to provide good answers. This often happens in a matter of minutes, so be sure to check back frequently when your question is still new for the best response.</div>
</div>
Ответ 1
Поплавьте один или оба внутренних div.
Плавающий один div:
#wrapper {
width: 500px;
border: 1px solid black;
overflow: hidden; /* will contain if #first is longer than #second */
}
#first {
width: 300px;
float:left; /* add this */
border: 1px solid red;
}
#second {
border: 1px solid green;
overflow: hidden; /* if you don't want #second to wrap below #first */
}
или если вы поплаваете с обоими, вам нужно поощрить, чтобы оболочка div содержала как плавающих дочерних элементов, так и считала ее пустой и не помещала границу вокруг них
Плавающие оба div:
#wrapper {
width: 500px;
border: 1px solid black;
overflow: hidden; /* add this to contain floated children */
}
#first {
width: 300px;
float:left; /* add this */
border: 1px solid red;
}
#second {
border: 1px solid green;
float: left; /* add this */
}
Ответ 2
Имея два divs,
<div id="div1">The two divs are</div>
<div id="div2">next to each other.</div>
вы также можете использовать свойство display
:
#div1 {
display: inline-block;
}
#div2 {
display: inline-block;
}
Пример jsFiddle здесь.
Если div1
превышает определенную высоту, div2
будет располагаться рядом с div1
внизу. Чтобы решить эту проблему, используйте vertical-align:top;
в div2
.
Пример jsFiddle здесь.
Ответ 3
Вы можете сидеть рядом друг с другом, используя свойство float CSS:
#first {
float: left;
}
#second {
float: left;
}
Вам нужно убедиться, что оболочка div допускает плавающие по ширине, а поля и т.д. заданы правильно.
Ответ 4
вот решение:
#wrapper {
width: 500px;
border: 1px solid black;
overflow: auto; /* so the size of the wrapper is alway the size of the longest content */
}
#first {
float: left;
width: 300px;
border: 1px solid red;
}
#second {
border: 1px solid green;
margin: 0 0 0 302px; /* considering the border you need to use a margin so the content does not float under the first div*/
}
ваше демо обновлено;
http://jsfiddle.net/dqC8t/1/
Ответ 5
Вариант 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/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
Ответ 6
Попробуйте использовать нижеприведенные изменения кода, чтобы поместить два div друг перед другом
#wrapper {
width: 500px;
border: 1px solid black;
display:flex;
}
ссылка JSFiddle
Ответ 7
Попробуйте использовать модель flexbox. Легко и коротко писать.
Live Jsfiddle
CSS
#wrapper {
display: flex;
border: 1px solid black;
}
#first {
border: 1px solid red;
}
#second {
border: 1px solid green;
}
Значение по умолчанию - строка. Таким образом, он выравнивается рядом друг с другом внутри #wrapper.
Но он не поддерживается IE9 или меньше, чем версии
Ответ 8
-
Добавить свойство float:left;
в обоих div.
-
Добавить свойство display:inline-block;
.
-
Добавить свойство display:flex;
в родительский div.
Ответ 9
#wrapper {
width: 1200;
border: 1px solid black;
position: relative;
float: left;
}
#first {
width: 300px;
border: 1px solid red;
position: relative;
float: left;
}
#second {
border: 1px solid green;
position: relative;
float: left;
width: 500px;
}
<div id="wrapper">
<div id="first">Qaru is for professional and enthusiast programmers, people who write code because they love it.</div>
<div id="second">When you post a new question, other users will almost immediately see it and try to provide good answers. This often happens in a matter of minutes, so be sure to check back frequently when your question is still new for the best response.</div>
</div>