Задать вопрос

Как отцентровать вложенный блок, а соседний разместить относительно правого края?

У меня есть тулбар, который растянут на 100% ширины body - на нём блок ссылок "Вход | Регистрация", а справа - поле поиска.
Нужно, чтобы блок "вход регистрация" был четко по центру родителя (тулбара и страницы, как следствие), а блок поиска был справа, c заданным отступом от правого края родителя (внутри него, естественно).

Ума не приложу, как это сделать. Все блоки резиновые, ширину нигде фиксировать нельзя.

toolar.png?dl=1

Код:

<div class="header__top-panel">
        <div class="user-links">
            <a class="user-links__link" href="{{ route('login') }}">Вход</a><span class="user-links__splitter">|</span><a class="user-links__link" href="{{ route('register') }}">Регистрация</a>
        </div>

        <div class="site-search">
            <form action="{{--{{ route ('search') }}--}}" class="site_search__form">
                <input name="text" type="search" class="site_search__text-field" title="Поисковый запрос" required><input type="submit" value="" class="site_search__submit-button" size="24" maxlength="128">
            </form>
        </div>
</div>


div.user-links должен быть по центру, а div.site-search - на расстоянии 2em от правого края
  • Вопрос задан
  • 237 просмотров
Подписаться 1 Простой 2 комментария
Решения вопроса 1
Audiophile
@Audiophile Автор вопроса
Сделал родителя display: table, и в нём три блока display: table-cell - 33, 34 и 33% ширина. В центральный засунул то что должно быть посередине и сделал выравнивание по центру, в правом разместил поиск с маргином справа. И с вертикальным выравниванием всё отлично - vertical-align работает на ура.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
webirus
@webirus
Тыжверстальщик! Наверстай мне упущенное...
https://jsfiddle.net/webirus/k7pjyruw/
Абсолютное позиционирование подойдет нормально.
При малых разрешениях все равно перестраивать нужно будет, так как не влезут.
Поэтому на планшетах или мобилках переделаешь user-links на float: left или куда-то еще.

https://jsfiddle.net/webirus/k7pjyruw/1/
Либо абсолютно кинуть правый блок, и прибить его вправо, добавив 2em, которые отступа.
В общем, оба варианта на абсолюте работает вполне корректно.
И под оба варианта нужно писать заменяющие медиа-запросы.
Ответ написан
.header__top-panel {
  text-align:center;
  position: relative;
}
.user-links {
  display:inline-block
}
.site-search {
  position: absolute;
  display: inline-block;
  right: 0;
  margin-right: 2em;
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы