Palehin
@Palehin
Frontend

Как спозиционировать блок по центру правильно?

Есть блок (popup), который сверстан и спозиционирован по центру по такому принципу:

<div class="popup">Контент</div>

.popup
{
width: 400px;
position: fixed;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
}


Но на маках transform: translate не работает как надо. Как решить?
  • Вопрос задан
  • 276 просмотров
Пригласить эксперта
Ответы на вопрос 3
drugoi
@drugoi
Front-end Developer
Не на маках, а, видимо, в Safari.
До 9 версии transform работал с префиксом -webkit
Ответ написан
Комментировать
.popup
{
width: 400px;
position: fixed;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
}

если хочешь так сделать не забывай отнимать половину блока, нужно дописать margin-left: -200px тогда будет точно по центру, если просто left: 50% то не по центру блок станет. Левый край блока поставит по центру просто.
Ответ написан
Комментировать
websanya
@websanya
Фронтенд разработчик, подкастер
Не забывайте, что у родителя нужно прописать position: relative; и только после этого у дочернего селектора писать position: absolute;, не знаю при чем здесь position: fixed;.

Что же касается префиксов, префикс -webkit- нужен не только для Safari 8-, но и для Андроидного браузера. Поддержку браузеров смотри здесь.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы