Самый правильный способ разнести блоки в разные стороны
Способ основывается на применении флекс-контейнера, внутри которого находятся два блока. Оперируя свойством justify-content, можно добиться различных вариантов размещения этих двух блоков внутри флекс-контейнера. Нас же сейчас интересует значение "space-between", равномерно распределяющее блоки по ширине флекс-контейнера, прижимая к его краям первый и последний блоки. Ширина блоков будет выбираться автоматически, в зависимости от контента, содержащегося внутри блока. Кроме того, ширину блока, при необходимости, можно зафиксировать свойством width, если это потребуется.
Этот метод используется, в основном, для построения "шапки" сайта, но может быть использован и в других частях
сайта или
Пример:
Код:
<div class="container"> <div class="box-left"> <span>Brand</span> <span>Stores</span> <span>Actions</span> <span>Contacts</span> </div> <div class="box-right"> <span>Settings</span> <span>Account</span> </div> </div>
{ /* Задаём флекс-бокс (позволяет влиять на расположение дочерних элементов) */ display: flex; /* Говорим элементам встать так, чтобы между ними, по возможности, образовывалось расстояние */ justify-content: space-between; } .box-left { /* Здесь можно задать какие-то стили для левого блока */ } .box-right { /* Здесь можно задать какие-то стили для правого блока */ }
.container { background: lightblue; padding: 5px; } .box-left { background: teal; } .box-right { background: blueviolet; } .container span { display: inline-block; padding: 10px 20px; background: rgba(255, 255, 255, 0.5); margin: 5px; } @media (max-width: 720px) { .container { padding: 5px 1px; font-size: 3.5vw; } .container span { margin: 2px; padding: 10px 2px; } }
Задача
Сделать шапку для сайта habr.com так, чтобы правая и левая часть меню были разнесены при помощи флекс-бокса
<div class="sol2"> <div class="content"> <div class="left"><a class="current" href="#">Публикации</a><a href="#">Новости</a><a href="#">Пользователи</a><a href="#">Хабы</a><a href="#">Компании</a><a href="#">Песочница</a></div> <div class="right"><a class="button default" href="#">Войти</a><a class="button primary" href="#">Регистрация</a></div> </div> </div>
.sol2 { border-bottom: 1px solid #d5dddf; border-top: 1px solid #d5dddf; font-size: 15px; background: white; margin-top:10px; } .sol2 .content { max-width: 900px; margin: 0 auto; padding: 0 32px; display: flex; justify-content: space-between; } .sol2 .right { padding: 16px; white-space: nowrap; } .sol2 .right .button { margin: 0 0 0 10px; } .sol2 a { display: inline-block; padding: 23px 0; margin-right: 28px; text-decoration: none; color: #838a92; } .sol2 a:hover { color: #5096b1; } .sol2 a.current { color: #464646; } .sol2 .button { padding: 8px 13px; border: 1px solid transparent; border-radius: 3px; font-size: 13px; box-shadow: none; } .sol2 .button.default { border-color: #a4afba; background-color: white; } .sol2 .button.default:hover { border-color: #65a3be; } .sol2 .button.primary { background-color: #65a3be; border-color: transparent; color: white; } .sol2 .button.primary:hover { background-color: #4986a1; } @media (max-width: 900px) { .sol2 { font-size: 1.5vw; } .sol2 .content { padding: 0 3.5vw; } .sol2 .right { padding: 1.5vw; } .sol2 .right .button { margin: 0 0 0 0.5vw; } .sol2 a { padding: 2.5vw 0; margin-right: 1.4vw; } .sol2 .button { padding: 0.8vw 1.4vw; font-size: 1.4vw; } }