Мне удалось разместить два divs один рядом с другим, используя float: left
, но нижний div не отображается должным образом: http://jsfiddle.net/N4kE3/2/
И с этим css для каждого div:
display: inline-block;
width: 50%;
см.: http://jsfiddle.net/N4kE3/3/
Они один над другим. Я должен установить width: 49%
чтобы они были рядом друг с другом.
Как это возможно?
Если вы хотите сохранить свои поплавки, вы можете использовать clearfix в контейнере:
#action:after {
content: "";
display: table;
clear: both;
}
Если вы хотите использовать inline-block
вам нужно удалить пробел в вашей разметке:
Эта..
<div id="action">
<div id="buy" class="action">Buy</div>
<div id="sell" class="action">Sell</div>
</div>
Становится...
<div id="action">
<div id="buy" class="action">Buy</div><div id="sell" class="action">Sell</div>
</div>
.. в противном случае пробел будет учитываться при расчете ширины, составляющей 50% + 50% + пробелы = более 100%. Вот как работает inline-block
.
Отображается пробел между элементами. Представьте <strong>Hello</strong> <em>world</em>
. Это отображается как " Hello world". См. Пробел между Hello и World.
Ввод и несколько пробелов сворачиваются в одно пространство.
<strong>Hello</strong>
<em>world</em>
становится " Hello world".
То же самое происходит с вашими div. Они составляют 50% экрана, но пространство также занимает 10 пикселей, толкает второй div на следующую строку.
Существует несколько способов решения этого. Используя float
, используйте display: table-cell
или (как я обычно предпочитаю), исключив пространство между divs с помощью комментариев XML <!-- -->
.
<div id="content">
<div id="action">
<div id="buy" class="action">Buy</div><!--
--><div id="sell" class="action">Sell</div>
</div>
<div id="other">test</div>
</div>
<span>
в этом случае?