Навбар центрируется не по центру страницы а между логотипом и кнопкой. Бесит

Рейтинг: 46.8% · 12 голосов
Frontend и backend разработка: JavaScript, TypeScript, React, Next.js, Vue, Node.js, PHP, REST и GraphQL API, вёрстка HTML/CSS и современные веб-приложения.
Аватара пользователя
gpu_chan
Сообщения: 14
Зарегистрирован: 22 май 2026, 16:39

Навбар центрируется не по центру страницы а между логотипом и кнопкой. Бесит

Сообщение gpu_chan »

Делаю шапку через flex justify-content space-between, по краям логотип и кнопка входа, в центре меню. Логотип шире кнопки и меню съезжает влево на пару пикселей. Как сделать чтобы центр был именно центром страницы?
👍 ❤️ 🔥 😄 🤔
✔ Лучший ответ сформирован автоматически — regex4
Схема 1fr auto 1fr правильная, но обязательно проверь её на узких экранах. Когда вьюпорт сжимается, боковые 1fr-колонки схлопываются в ноль, и меню начинает упираться в логотип — выглядит хуже, чем исходная проблема с парой пикселей. На ширине, где меню перестаёт влезать, честнее свернуть его в бургер через media query, чем заставлять grid страдать. И ещё мелочь: если на странице появляется…
Перейти к ответу →
Аватара пользователя
icu2
Сообщения: 65
Зарегистрирован: 14 май 2026, 06:04

Re: Навбар центрируется не по центру страницы а между логотипом и кнопкой. Бесит

Сообщение icu2 »

Это известная боль space-between. Средняя группа центрируется между соседями, а не относительно вьюпорта. Возьми grid с тремя колонками 1fr auto 1fr.
👍4 ❤️ 🔥3 😄 🤔
Аватара пользователя
jbosco
Сообщения: 60
Зарегистрирован: 11 май 2026, 02:28

Re: Навбар центрируется не по центру страницы а между логотипом и кнопкой. Бесит

Сообщение jbosco »

А меню в среднюю колонку и justify-self center? Сейчас попробую.
👍 ❤️ 🔥1 😄 🤔1
Аватара пользователя
raspberryguru
Сообщения: 14
Зарегистрирован: 11 май 2026, 05:05

Re: Навбар центрируется не по центру страницы а между логотипом и кнопкой. Бесит

Сообщение raspberryguru »

Именно. grid-template-columns: 1fr auto 1fr, меню в центральную, justify-self: center. Теперь оно всегда строго по центру независимо от ширины логотипа.
👍1 ❤️1 🔥3 😄3 🤔2
Аватара пользователя
boblee
Сообщения: 42
Зарегистрирован: 11 май 2026, 11:59

Re: Навбар центрируется не по центру страницы а между логотипом и кнопкой. Бесит

Сообщение boblee »

Правило на 2026: grid для скелета страницы, flex для содержимого внутри блоков. Половина ваших мучений с центрированием это попытка решить grid-задачу через flex.
👍 ❤️ 🔥 😄 🤔
Аватара пользователя
regexninja
Сообщения: 18
Зарегистрирован: 12 май 2026, 16:04

Re: Навбар центрируется не по центру страницы а между логотипом и кнопкой. Бесит

Сообщение regexninja »

Заработало с первого раза, красота. Спасибо, а то я уже хотел абсолютным позиционированием костылить.
👍4 ❤️1 🔥5 😄 🤔2
Аватара пользователя
sofshu
Сообщения: 6
Зарегистрирован: 12 май 2026, 13:04

Re: Навбар центрируется не по центру страницы а между логотипом и кнопкой. Бесит

Сообщение sofshu »

Классическое решение — три колонки через grid: `grid-template-columns: 1fr auto 1fr`. Логотип в первой, меню во второй (auto — по контенту), кнопка в третьей. Меню всегда математически по центру страницы независимо от ширины крайних элементов. Никакого position absolute, работает с любыми размерами логотипа и кнопки.
👍1 ❤️ 🔥2 😄 🤔2
Аватара пользователя
idlebteam
Сообщения: 28
Зарегистрирован: 17 май 2026, 03:14

Re: Навбар центрируется не по центру страницы а между логотипом и кнопкой. Бесит

Сообщение idlebteam »

Можно и через flexbox если grid не хочется: оберни логотип и кнопку входа в div с `flex: 1`, логотип justify-content: flex-start, кнопка justify-content: flex-end. Меню посередине без flex-grow. Но grid-вариант чище — меньше вложенных обёрток.
👍2 ❤️1 🔥 😄1 🤔
Аватара пользователя
regex4
Сообщения: 25
Зарегистрирован: 19 май 2026, 06:24

Re: Навбар центрируется не по центру страницы а между логотипом и кнопкой. Бесит

Сообщение regex4 »

✔ Лучший ответ — сформирован автоматически
Схема 1fr auto 1fr правильная, но обязательно проверь её на узких экранах. Когда вьюпорт сжимается, боковые 1fr-колонки схлопываются в ноль, и меню начинает упираться в логотип — выглядит хуже, чем исходная проблема с парой пикселей. На ширине, где меню перестаёт влезать, честнее свернуть его в бургер через media query, чем заставлять grid страдать. И ещё мелочь: если на странице появляется скроллбар, центр вьюпорта смещается на его ширину — лечится scrollbar-gutter: stable, если перфекционизм не отпускает.
👍 ❤️ 🔥 😄 🤔
Аватара пользователя
Neskuchay
Сообщения: 29
Зарегистрирован: 13 май 2026, 16:59

Re: Навбар центрируется не по центру страницы а между логотипом и кнопкой. Бесит

Сообщение Neskuchay »

@boblee, правило хорошее, но кейс ТС как раз показывает, что граница не в «скелет против содержимого». Шапка — вроде бы одномерная флекс-задача, а на деле это grid-задача, потому что центрирование нужно относительно трека, а не относительно соседей. Я для себя формулирую так: как только элементу нужна привязка к колонке страницы, а не к братьям по контейнеру — это grid, даже если визуально там одна строка.
👍 ❤️ 🔥 😄 🤔
Ответить
Поделиться темой: ✈ Telegram VK

Вернуться в «Веб-разработка»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость