У меня есть следующий HTML, где классы float-left и float-right делают именно это:
<div class="block-footer">
<button class="medium float-left">A</button>
<button class="medium float-left">A</button>
<button class="medium float-left">A</button>
<button class="medium float-right">A</button>
<button class="medium float-right">A</button>
</div>
Это работает, но мой div, похоже, не занимает вертикального пространства и что проблема для дальнейшего. Когда я это делаю:
<div class="block-footer">
<button class="medium float-left">A</button>
<button class="medium float-left">A</button>
<button class="medium float-left">A</button>
<button class="medium float-right">A</button>
<button class="medium">A</button>
</div>
Тогда DIV занимает пространство.
Итак, как я могу заставить некоторые кнопки плавать влево, а некоторые - вправо, а DIV использует некоторое вертикальное пространство?
Вам необходимо установить overflow:auto
на вашем контейнере div.
Это связано с контекстом форматирования блоков. Проверьте ответ на этот вопрос о том, как он работает. По сути, поплавки делают именно это, плавают и действуют так, как будто они удаляются из потока документов, что приводит к срыву контейнера div.
clearfix
для плавающих кнопок. Например:.clearfix:before, .clearfix:after { display: table; content: " "; } .clearfix:after { clear: both; }
Однако я не видел, как это работает на элементахbutton
но попробуйте ... это также зависит от браузеров, которые вы должны поддерживать, в качестве альтернативы вы можете добавить clearfixdiv
в качестве последнего дочернего элемента вblock-footer
. Также, чтобы вы знали, если вы используете плавающийblock-footer
который также оборачивает всплывающие дочерние элементы.