Задать вопрос
@Mysianio
вайти в айти

Свойство align-items: center в firefox и в chrome, как пофиксить?

На 1 пиксель ломается верстка в FireFox относительно Chrome, как выяснилось, все это скорее всего происходит из-за align-items: center.
Дело в том, что если не получается поставить элемент по центру, в связи нечетности пикселей или подобного, chrome поставить блок чуть ниже, а firefox чуть выше.
Например:
У нас есть блок в 2px и контейнер в 5px. Chrome поставит блок так, чтобы сверху было 2 пустых пикселя, а снизу 1 пустой пиксель. В этой же ситуации, firefox поступит так - он оставит 1 пустой пиксель сверху и 2 пустых пикселя снизу.
Как это пофиксить?
Есть ли какие-нибудь костыли? Популярные методы решения?
  • Вопрос задан
  • 121 просмотр
Подписаться 1 Средний 5 комментариев
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Профессиональная вёрстка на HTML и CSS
    3 месяца
    Далее
  • Stepik
    Основы HTML и CSS
    2 недели
    Далее
  • OTUS
    HTML/CSS
    3 месяца
    Далее
Решения вопроса 1
@Flying
Это следствие разных алгоритмов обработки суб-пиксельных вычислений т.к. браузерам всё равно в конечном итоге приходится рисовать страницу на экране, состоящем из пикселей. В случае hi dpi экранов, где за один логический пиксель отвечает несколько физических задача решается проще, но для экранов с dppx=1 приходится делать выбор и вот этот выбор делается по-разному.

На больших контейнерах это незаметно, а для маленьких - да, есть шанс того что элемент будет выглядеть "криво". Какого-то универсального решения здесь, судя по всему, нет, остаётся только подгонять, добавляя отступы в 1px туда или сюда для разных браузеров. Для того чтобы добавить CSS код только для какого-то конкретного браузера можно воспользоваться, к примеру, информацией с browserhacks, хотя, конечно, тут надо быть осмотрительным.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы
ITK academy Нижний Новгород
от 50 000 до 90 000 ₽
FoodSoul Калининград
от 180 000 до 250 000 ₽