Center css background: background-position — CSS: Cascading Style Sheets

HTML/CSS фоновая позиция | Блог Electric Toolbox

Главная / HTML/CSS background-position

Положение фона HTML/CSS можно задать с помощью пикселей, % и констант top, center, bottom для вертикального позиционирования и left, center, right для горизонтального позиционирования. В этом посте рассматривается порядок, в котором они должны быть, и «подводная лодка», которая может застать вас врасплох при переходе от констант к пикселям.

background-position

Порядок background-position должен быть горизонтальным, за которым следует вертикальное положение, например:

 background-position: слева|в центре|справа вверху|в центре|внизу; 

Можно использовать константы, пиксели и/или проценты, и они всегда должны располагаться в следующем порядке: по горизонтали и по вертикали. Однако на практике, когда используются константы, браузеры, кажется, принимают порядок в любом случае.

background

И, конечно же, позиция фона также может быть установлена ​​как часть комбинированного объявления фона, например:

 background: url(/images/red. png) right center no-repeat; 

И снова часть положения должна быть горизонтальной, а затем вертикальной.

Примеры

В следующих примерах показан красный фон размером 50 пикселей, который не повторяется. Каждый снимок экрана имеет меньшее окно Firefox, расположенное поверх большего окна Chrome.

Текущие версии Firefox и IE не толерантны к порядку (то есть он должен быть горизонтальным, а затем вертикальным) при смешивании констант с размерами в пикселях, но Chrome и более старые браузеры (например, IE8 в режиме совместимости, IE<8) допустимы. более терпимым, как показано ниже.

Пример — background-position: top center

В первом примере показан пример использования констант в неправильном порядке. Они правильно отображаются как в Chrome, так и в FF, т.е. в центре окна по горизонтали и вверху.

Пример — background-position: center top

Второй пример отображает то же, что и первый пример, но содержит константы в правильном порядке.

Пример — background-position: 50px слева

Это первый пример, который не будет отображаться так, как можно было бы ожидать, и это потому, что порядок недействителен: у нас есть горизонтальное ключевое слово, где ожидается вертикальная константа или значение.

Как вы можете видеть на снимке экрана ниже, он отображается так, как мы могли бы ожидать в Chrome (и в других браузерах, о которых я упоминал ранее), но не в Firefox, где он по-прежнему находится вверху слева.

 

Пример — background-position: left 50px

Теперь вот предыдущий пример в правильном направлении с горизонтальной константой впереди. Теперь он отображается так, как ожидалось, в обоих браузерах.

Пример — background-position: top 50px vs 50px top

Следующие два примера аналогичны предыдущим двум, но иллюстрируют проблему, когда вертикальная константа помещается в горизонтальное положение, а значение — в другое. Первый не будет правильно отображаться в FF, а второй (в правильном порядке) будет.

Пример — background-position: 100px 50px

И последний пример просто показывает горизонтальную позицию фона 100px с позицией фона 50px, чтобы проиллюстрировать порядок.

Заключение и «повод»

Я часто вижу примеры CSS в Интернете, где вы видите что-то вроде «положение фона: вверху слева», что заставляет людей думать, что правильный порядок — вертикальный, а затем горизонтальный. Я сам много раз попадал в эту ловушку, и только когда мне случается смотреть на макет в Firefox, я понимаю, что что-то не так.

Суть в том, что вы начинаете с «background-position: top left», а затем переходите к изменению, например. «left» на что-то вроде «50px», только позиция фона теперь смещается так в некоторых браузерах, а не в других. В зависимости от того, с каким браузером вы работаете, вы можете не заметить, что это проблема, пока позже.

Таким образом, вывод этого поста заключается в том, чтобы убедиться, что вы всегда ставите горизонтальное положение на первое место, а вертикальное — на второе.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *