Css background картинка: 🤷🏽♀️ Page not found | MDN Web Docs
20.03.1973
Разное
background — CSS | MDN
Сокращённое CSS свойствоbackground
устанавливает сразу все свойства стиля фона, такие как цвет, изображение, источник и размер, или метод повтора.Исходный код этого интерактивного примера хранится в репозитории GitHub. Если вы хотите внести свой вклад в проект интерактивных примеров, пожалуйста клонируйте https://github.com/mdn/interactive-examples и отправьте нам запрос на извлечение..
Свойство является сокращением, которое устанавливает следующие свойства в одном объявлении: background-clip
, background-color
, background-image
, background-origin
, background-position
, background-repeat
, background-size
, и background-attachment
.
Как и во всех сокращённых свойствах, любые пропущенные вложенные значения будут установлены в свои изначальные значения.
[ (en-US) <bg-layer> , ] (en-US)* (en-US) <final-bg-layer>где <bg-layer> = <bg-image> || (en-US) <bg-position> [ (en-US) / <bg-size> ] (en-US)? (en-US) || (en-US) <repeat-style> || (en-US) <attachment> || (en-US) <box> || (en-US) <box>
<final-bg-layer> = <'background-color'> || (en-US) <bg-image> || (en-US) <bg-position> [ (en-US) / <bg-size> ] (en-US)? (en-US) || (en-US) <repeat-style> || (en-US) <attachment> || (en-US) <box> || (en-US) <box>где
<bg-image> = none | (en-US) <image> (en-US)
<bg-position> = [ (en-US) [ (en-US) left | (en-US) center | (en-US) right | (en-US) top | (en-US) bottom | (en-US) <length-percentage> ] (en-US) | (en-US) [ (en-US) left | (en-US) center | (en-US) right | (en-US) <length-percentage> ] (en-US) [ (en-US) top | (en-US) center | (en-US) bottom | (en-US) <length-percentage> ] (en-US) | (en-US) [ (en-US) center | (en-US) [ (en-US) left | (en-US) right ] (en-US) <length-percentage>? (en-US) ] (en-US) && (en-US) [ (en-US) center | (en-US) [ (en-US) top | (en-US) bottom ] (en-US) <length-percentage>? (en-US) ] (en-US) ] (en-US)
<bg-size> = [ (en-US) <length-percentage> | (en-US) auto ] (en-US){ (en-US)1,2} (en-US) | (en-US) cover | (en-US) contain
<repeat-style> = repeat-x | (en-US) repeat-y | (en-US) [ (en-US) repeat | (en-US) space | (en-US) round | (en-US) no-repeat ] (en-US){ (en-US)1,2} (en-US)
<attachment> = scroll | (en-US) fixed | (en-US) local
<box> = border-box | (en-US) padding-box | (en-US) content-boxгде
<image> = <url> (en-US) | (en-US) <image()> | (en-US) <image-set()> | (en-US) <element()> | (en-US) <paint()> | (en-US) <cross-fade()> | (en-US) <gradient>
<length-percentage> = <length> | (en-US) <percentage>где
<image()> = image( <image-tags>? (en-US) [ (en-US) <image-src>? (en-US) , <color>? (en-US) ] (en-US)! (en-US) )
<image-set()> = image-set( <image-set-option># (en-US) )
<element()> = element( <id-selector> )
<paint()> = paint( <ident> (en-US), <declaration-value>? (en-US) )
<cross-fade()> = cross-fade( <cf-mixing-image> , <cf-final-image>? (en-US) )
<gradient> = <linear-gradient()> | (en-US) <repeating-linear-gradient()> | (en-US) <radial-gradient()> | (en-US) <repeating-radial-gradient()> | (en-US) <conic-gradient()>где
<image-tags> = ltr | (en-US) rtl
<image-src> = <url> (en-US) | (en-US) <string> (en-US)
<color> = <rgb()> | (en-US) <rgba()> | (en-US) <hsl()> | (en-US) <hsla()> | (en-US) <hwb()> | (en-US) <hex-color> | (en-US) <named-color> | (en-US) currentcolor | (en-US) <deprecated-system-color>
<image-set-option> = [ (en-US) <image> (en-US) | (en-US) <string> (en-US) ] (en-US) [ (en-US) <resolution> (en-US) || (en-US) type(<string> (en-US)) ] (en-US)
<id-selector> = <hash-token>
<cf-mixing-image> = <percentage>? (en-US) && (en-US) <image> (en-US)
<cf-final-image> = <image> (en-US) | (en-US) <color>
<linear-gradient()> = linear-gradient( [ (en-US) <angle> | (en-US) to <side-or-corner> ] (en-US)? (en-US) , <color-stop-list> )
<repeating-linear-gradient()> = repeating-linear-gradient( [ (en-US) <angle> | (en-US) to <side-or-corner> ] (en-US)? (en-US) , <color-stop-list> )
<radial-gradient()> = radial-gradient( [ (en-US) <ending-shape> || (en-US) <size> ] (en-US)? (en-US) [ (en-US) at <position> (en-US) ] (en-US)? (en-US) , <color-stop-list> )<repeating-radial-gradient()> = repeating-radial-gradient( [ (en-US) <ending-shape> || (en-US) <size> ] (en-US)? (en-US) [ (en-US) at <position> (en-US) ] (en-US)? (en-US) , <color-stop-list> )
<conic-gradient()> = conic-gradient( [ (en-US) from <angle> ] (en-US)? (en-US) [ (en-US) at <position> (en-US) ] (en-US)? (en-US), <angular-color-stop-list> )где
<rgb()> = rgb( <percentage>{ (en-US)3} (en-US) [ (en-US) / <alpha-value> ] (en-US)? (en-US) ) | (en-US) rgb( <number>{ (en-US)3} (en-US) [ (en-US) / <alpha-value> ] (en-US)? (en-US) ) | (en-US) rgb( <percentage># (en-US){ (en-US)3} (en-US) , <alpha-value>? (en-US) ) | (en-US) rgb( <number># (en-US){ (en-US)3} (en-US) , <alpha-value>? (en-US) )
<rgba()> = rgba( <percentage>{ (en-US)3} (en-US) [ (en-US) / <alpha-value> ] (en-US)? (en-US) ) | (en-US) rgba( <number>{ (en-US)3} (en-US) [ (en-US) / <alpha-value> ] (en-US)? (en-US) ) | (en-US) rgba( <percentage># (en-US){ (en-US)3} (en-US) , <alpha-value>? (en-US) ) | (en-US) rgba( <number># (en-US){ (en-US)3} (en-US) , <alpha-value>? (en-US) )
<hsl()> = hsl( <hue> <percentage> <percentage> [ (en-US) / <alpha-value> ] (en-US)? (en-US) ) | (en-US) hsl( <hue>, <percentage>, <percentage>, <alpha-value>? (en-US) )
<hsla()> = hsla( <hue> <percentage> <percentage> [ (en-US) / <alpha-value> ] (en-US)? (en-US) ) | (en-US) hsla( <hue>, <percentage>, <percentage>, <alpha-value>? (en-US) )
<hwb()> = hwb( [ (en-US)<hue> | (en-US) none] (en-US) [ (en-US)<percentage> | (en-US) none] (en-US) [ (en-US)<percentage> | (en-US) none] (en-US) [ (en-US) / [ (en-US)<alpha-value> | (en-US) none] (en-US) ] (en-US)? (en-US) )
<side-or-corner> = [ (en-US) left | (en-US) right ] (en-US) || (en-US) [ (en-US) top | (en-US) bottom ] (en-US)<color-stop-list> = [ (en-US) <linear-color-stop> [ (en-US), <linear-color-hint>] (en-US)? (en-US) ] (en-US)# (en-US) , <linear-color-stop>
<ending-shape> = circle | (en-US) ellipse
<size> = closest-side | (en-US) farthest-side | (en-US) closest-corner | (en-US) farthest-corner | (en-US) <length> | (en-US) <length-percentage>{ (en-US)2} (en-US)
<position> = [ (en-US) [ (en-US) left | (en-US) center | (en-US) right ] (en-US) || (en-US) [ (en-US) top | (en-US) center | (en-US) bottom ] (en-US) | (en-US) [ (en-US) left | (en-US) center | (en-US) right | (en-US) <length-percentage> ] (en-US) [ (en-US) top | (en-US) center | (en-US) bottom | (en-US) <length-percentage> ] (en-US)? (en-US) | (en-US) [ (en-US) [ (en-US) left | (en-US) right ] (en-US) <length-percentage> ] (en-US) && (en-US) [ (en-US) [ (en-US) top | (en-US) bottom ] (en-US) <length-percentage> ] (en-US) ] (en-US)
<angular-color-stop-list> = [ (en-US) <angular-color-stop> [ (en-US), <angular-color-hint>] (en-US)? (en-US) ] (en-US)# (en-US) , <angular-color-stop>где
<alpha-value> = <number> | (en-US) <percentage>
<hue> = <number> | (en-US) <angle>
<linear-color-stop> = <color> <color-stop-length>? (en-US)
<linear-color-hint> = <length-percentage>
<angular-color-stop> = <color> && (en-US) <color-stop-angle>? (en-US)
<angular-color-hint> = <angle-percentage>где
<color-stop-length> = <length-percentage>{ (en-US)1,2} (en-US)
<color-stop-angle> = <angle-percentage>{ (en-US)1,2} (en-US)
<angle-percentage> = <angle> | (en-US) <percentage>
Background-blend-mode • Про CSS
background-blend-mode
.
Внимание: все демо в посте — действующие примеры без фолбеков. Для просмотра лучше всего воспользоваться последними версиями Chrome, Opera или Firefox.
Что делает это новое свойство и какие возможности оно нам дает?
background-blend-mode
управляет режимами наложения слоев фона, заданного в CSS.
Пример:
Наведите курсор на картинку, чтобы увидеть исходное изображение.
background-blend-mode
аналогичен режимам наложения слоев в фотошопе, и список возможных значений свойства вам, скорее всего, покажется знакомым:
- normal
- multiply
- screen
- overlay
- darken
- lighten
- color-dodge
- color-burn
- hard-light
- soft-light
- difference
- exclusion
- hue
- saturation
- color
- luminosity
Как это работает?
Возьмем, к примеру, картинку с котиком и зададим её фоном:
background: teal url(http://placekitten.
com/250/200);
Для наложения слоев обязательное условие, чтобы слоев было больше одного. В нашем случае первым слоем является цвет (teal
).
Теперь можно добавить режим наложения, например:
background: teal url(http://placekitten.com/250/200);
background-blend-mode: hard-light;
Результат:
Вы можете поиграться с режимами здесь или посмотреть их списком на одной странице вот тут.
Слоев фона может быть больше двух, и для каждого слоя можно отдельно задавать режим наложения:
background: teal url(http://placekitten.com/250/200);
background-blend-mode: hard-light, multiply, normal;
Фоны могут содержать не только изображения, но и градиенты, что позволяет делать разные интересные эффекты:
Как можно использовать background-blend-mode
?
Предположим, есть сайт в определенной цветовой гамме, и в дизайне нужно разместить несколько картинок:
Так картинки не очень вписываются в цветовую схему. Раньше чтобы тонировать изображения под цвет сайта, потребовалось бы открыть графический редактор и проделать эту операцию с каждой картинкой, но сейчас это можно сделать одной строчкой:
background-blend-mode: luminosity;
Результат:
Способ имеет свои преимущества:
- Экономит время — не нужно вручную красить картинки, используемые в дизайне. Особо пригодятся режимы наложения в прототипировании, когда картинки, скорее всего, ещё будут меняться.
- Позволяет легко сделать эффект, когда при наведении картинка показывается в оригинальном цвете. При этом не нужно готовить два изображения и менять их по наведению курсора — достаточно одного.
А если потом изменится цветовая схема сайта — не нужно будет заново перекрашивать картинки под новую схему — всё произойдет само собой:
Правда, мне не удалось сделать плавную смену режимов наложения. Насколько я понимаю, они не анимируются. Но это можно обойти используя псевдоэлементы: через :before
создается дублирующий слой с той же картинкой, и ему по наведению меняется прозрачность — это можно сделать плавно (пример справа):
Ещё один способ покрасить картинку в дизайне — подложить полосатый градиент:
Приятный бонус background-blend-mode
— плавная деградация: если браузер не поддерживает режимы наложения, посетитель увидит обычную картинку. Может быть, она будет не очень вписана в цветовую схему, но это лучше чем ничего.
Интересно, что в некоторых режимах результат различается в зависимости от того, наложена ли картинка на цвет или цвет поверх картинки (слева картинка поверх цвета, справа наоборот):
Наложение цвета на картинку позволяет получить более интересные результаты, похожие на цветовые фильтры, но этот вариант хуже с точки зрения деградации, потому что если режимы не сработают, на странице отобразится верхний слой — то есть заливка цветом.
С изображениями всё более-менее понятно, но вот для CSS-градиентов режимы наложения поистине открывают новые горизонты. Теперь слои градиентов могут не просто просвечивать друг под другом в областях полной или частичной прозрачности, но также они могут взаимодействовать с нижележащими слоями, образовуя новые сочетания. Делать такие градиенты безусловно сложнее, но и интереснее тоже.
Уже есть первая галерея с примерами: bennettfeely.com/gradients/. Ниже на странице можно найти JS-фолбек и взвешивание одних и тех же градиентов, сделанных на CSS или в виде изображений различных форматов. CSS, конечно, выигрывает.
И даже если пока что не все браузеры позволяют использовать background-blend-mode
, имеет смысл поинтересоваться какие из используемых вами изображений уже можно заменить CSS-паттернами, чтобы получить выигрыш в весе и производительности.
Вдохновившись примерами из галереи, я решила посмотреть что ещё можно сделать. Одно из забавных открытий — шахматная доска:
Без режимов наложения такое клеточки делать немного головоломно (хотя на основе такого градиента можно получить множество других). С режимами клеточки делаются всего из двух градиентов, третий понадобится в случае если клеточки должны быть не черно-белыми, а цветными.
Правда, паттерн не всегда хорошо поддаётся перекрашиванию, это некоторый недостаток способа. С другой стороны, в этом случае заливкой клеток может быть не только цвет, но и градиент, что в предыдущем способе было бы не очень удобно делать.
Ещё несколько градиентов:
Можете отредактировать любой из них отключив режимы наложения и посмотреть что меняется (а также увидеть как выглядят паттерны в бразуерах без поддержки свойства), можете попробовать менять режимы местами, вписывать свои значения или менять цвет фона. Иногда в процессе таких экспериментов из одного паттерна получается ещё несколько.
background-blend-mode
выглядит очень привлекательно, позволяя добавить немного магии фотошопа в привычный CSS.
image — свойство css :: руководство cssdot.ru
Свойство background-image
позволяет установить одно или несколько фоновых изображений для элемента, которые будут отображаться в границах области, охватываемой внешним краем рамок элемента, и заполненной фоновым цветом, если он задан с помощью свойства — (background-color
).
Если в качестве фона используются несколько изображений, то более «близким» к пользователю считает первый слой, потом второй, и так далее — до конца списка, а слой залитый фоновым цветом лежит позади всех фоновых изображений. Поэтому рекомендуется, задавать фоновые изображения в паре с цветом фона, чтобы в случае, когда по каким-либо причинам изображения не отобразились, или не успели загрузиться — содержание элемента не сливалось с подложкой.
Кроме того, по соображениям совместимости и обеспечения общедоступности информации для пользователей с ограниченными возможностями, не следую использовать фоновые изображения в качестве единственного метода представления важных данных, потому что изображения отсутствуют в не графических средствах воспроизведения, и, к тому же, они могут быть отключены в высоко-контрастных режимах отображения. Более подробно с рекомендациями на данную тему можно ознакомится в спецификации Web Content Accessibility Guidelines (WCAG) 2.0.
В качестве изображения возможно использовать следующие значения:
- [:inherit:]
- значение свойства наследуется от родительского элемента
- [:none:]
- изображение отсутствует, отображается как пустой прозрачный слой
- [:image:]
- значение, типа «изображение», которое может быть задано как:
- ссылка на графический файл —
url(относительный или абсолютный путь к изображению)
- встроенное изображение —
url(data:[тип][;charset=[кодировка]][;base64],данные)
- градиент —
linear-gradient()
,radial-gradient()
и т.д.
- функция
image()
- функция
element(
) - функция
image-rect()
- ссылка на графический файл —
Практически все современные браузеры поддерживают значения — inherit
, none
, url()
, а так же функции для градиентов, но с префиксами -moz, -webkit, -o. Функция image()
хотя и описана в последней версии спецификации …, но на данный момент не поддерживается ни одним из браузеров. Функция element()
определена в следующий версии спецификации CSS 4, и с префиксом реализована только в браузере Firefox. Функция image-rect()
не содержится в спецификациях и поддерживается только браузером Firefox.
Если в списке изображений, встречается такое, которое не может быть отображено (не поддерживаемый графический формат), загружено (нет доступа к сетевому ресурсу), либо оно пустое, то оно все равно считается за отдельный пустой слой, аналогично ключевому слову ‘none’.
Свойство background-image
относится к спецификации CSS, применяется к всем элементам, его значение не наследуется от родительского элемента в иерархии документа, и по умолчанию принимает значение none. На данный момент свойство поддерживается во всех основных браузерах.
Смотри также:
HTML img против CSS background-image
Итак, вы смотрите на дизайн-композицию с изображением и пытаетесь выбрать между использованием HTML <img> Тег
или фоновое изображение CSS.
Сначала вы можете подумать: «А разве это имеет значение?»
В конце концов, существует множество ситуаций, когда оба варианта приведут к одному и тому же визуальному результату.
Но вы здесь, так что вы хотите принять взвешенное решение .
Вот пошаговый процесс выбора между ними.
Шаг 1: Доступность
Фоновые изображения CSS могут быть видны, но представляют проблемы с доступностью.
Например, <img> Теги
имеют возможность добавлять замещающий текст и атрибут title, которые могут быть восприняты программами чтения с экрана. Это важно не только для конечных пользователей, но и для индексации в результатах поиска Google. Вот выдержка из официального блога Google для веб-мастеров, посвященная разумному использованию альтернативных атрибутов:
Поскольку робот Googlebot не видит изображения напрямую, мы обычно концентрируемся на информации, представленной в атрибуте «alt».Не стесняйтесь дополнять атрибут «alt» «title» и другими атрибутами, если они представляют ценность для ваших пользователей!
Хотите доступность и лучшее SEO? Используйте файл <img> Тег
.
Остальные соображения относятся к изображениям-как-чистым-визуальным-дизайнам .
Шаг 2. Сравнение фонового изображения CSS и производительности
Если вы ссылаетесь на один и тот же URL-адрес для изображения, технически запрос один и тот же, поэтому время, необходимое для загрузки, должно быть одинаковым. Однако проблема производительности на самом деле сводится к моменту выполнения запроса.
Если у вас есть куча больших фоновых изображений, объявленных в вашем CSS, браузеру потребуется больше времени для анализа файла CSS и извлечения изображений, что задержит загрузку всей страницы.
С <img>
, запросы выполняются при анализе HTML, поэтому любой контент, предшествующий тегу в документе, будет информацией, которую пользователи могут начать читать.
Кроме того, встроенные изображения ( <img>
или <picture>
) могут использовать такие инструменты, как заполнение изображения и отложенная загрузка для еще большего повышения производительности.
Шаг 3. Возможности манипулирования фоновым изображением CSS
Если вы используете один или несколько относительно небольших файлов изображений для эстетических улучшений, а преимущества в производительности незначительны, рассмотрите возможности манипулирования с помощью CSS.
Фоновые изображения можно использовать вместе с background-color
, background-repeat
, background-attachment
, background-position
и background-blend-mode
.Это открывает множество возможностей, если возникнет необходимость в манипуляции.
Если вы накладываете текст поверх изображения, гораздо проще создать прототип с фоновым изображением CSS.
Заключение
HTML <img> Теги
следует использовать для обеспечения доступности и SEO. В противном случае рассмотрите скорость, производительность и манипулирование, когда изображение является чисто визуальным улучшением дизайна.
Использование фоновых изображений CSS · WebPlatform Docs
Резюме
В этой статье подробно рассматриваются фоны CSS: цвет фона, изображение, повторение, вложение и положение.Ближе к концу он также рассматривает продвинутые методы, такие как спрайты CSS.
Введение
Признайся! Начиная с первой статьи в учебной программе по веб-стандартам, вы были в восторге от того, как сделать свой сайт ярким и потрясающим. Может быть, вы даже пропустили этот раздел?
Фоновые изображения предназначены для того, чтобы ваш сайт выглядел потрясающе, но вы можете быть удивлены, насколько близко они основаны на фундаментальных концепциях, которые вы уже изучили.
Как вы уже узнали из более ранней статьи этой серии, одно из наиболее важных изменений, которое приходит с CSS, — это возможность отделить представление или то, как вещи выглядят, от семантики или того, что вещи означают.Фоновое изображение CSS является одним из наиболее важных инструментов, которые вы имеете в своем распоряжении, потому что оно позволяет вам применять декоративные изображения к определенным частям вашего HTML, не добавляя лишнего веса вашему HTML. Раньше авторы (такие как вы!) были вынуждены заполнять свой код тегами img
для достижения того же эффекта.
CSS и, в частности, свойство background
избавляют ваш HTML от беспорядка в представлении. Редизайн и другие переходы в жизни сайтов, созданных современными методами, могут быть выполнены гораздо эффективнее.Вы можете обновить весь сайт, изменив только таблицу стилей, а не перекодируя каждую HTML-страницу. В зависимости от размера вашего сайта, это может значительно сэкономить время.
В этой статье вы изучите основы работы фоновых изображений CSS. Вы увидите, как применять фоновое изображение с помощью CSS, настраивать его размещение, размещать его вертикально или горизонтально и комбинировать фоновые изображения с помощью спрайтов CSS для повышения производительности сайта.
Как это работает?
CSS для фона разделен на несколько разных свойств.Используя эти свойства, такие как position
и color
, вы можете начать управлять внешним видом вашей страницы. В этой статье вы подробно ознакомитесь с фоновыми изображениями CSS, шаг за шагом создав предупреждающее сообщение в качестве примера.
Сначала просмотрите различные свойства, которые вы можете использовать.
Свойства фона
цвет фона | Задает цвет фона HTML-элемента. | Существует несколько способов указать Многие инструменты выбора цвета помогут вам найти шестнадцатеричное представление данного цвета. Чистый красный цвет, например, будет #FF0000. Допустимые значения включают |
изображение | Указывает путь или URL-адрес фонового изображения.![]() | Установите фоновое изображение Допустимые значения включают |
повтор | Указывает, в каком направлении должно располагаться фоновое изображение. | Допустимые значения включают |
насадка | Задает поведение фонового изображения при прокрутке пользователем. | Изображения могут либо прокручиваться вместе с их содержимым, либо оставаться неподвижными на экране просмотра. Допустимые значения включают |
позиция | Сообщает браузеру, где расположить фоновое изображение. | Изображения могут отображаться в любом месте в пределах границ элемента HTML, к которому они применяются.Используйте Существует много полезных способов указать положение фона, ключевые слова и числовые значения. Когда используются проценты и пиксели, отправной точкой всегда является верхний левый угол элемента HTML, хотя способ позиционирования изображения работает с пикселями и процентами несколько иначе.Пиксели всегда перемещают изображение на заданное количество пикселей вниз и вправо от содержащего его блока (или вверх и влево, если они являются отрицательными значениями), независимо от размера изображения и содержащего блока. С другой стороны, проценты перемещают изображение на процент разницы между размером содержащего его блока и размером изображения. Если изображение и содержащее его поле имеют одинаковый размер, проценты вообще не будут перемещать изображение. Допустимые значения включают 3 центр |
фон | Сокращенное свойство, которое можно использовать для описания всех остальных свойств в одной строке. | Сокращенные свойства действительно очень хороши. Большинство разработчиков используют их, чтобы сделать CSS максимально компактным и сгруппировать связанные свойства.Вы можете написать общее правило, используя сокращенную запись, а затем при необходимости переопределить его с помощью определенных свойств. Свойства всегда должны указываться в одном и том же порядке, чтобы браузеры могли легко интерпретировать предполагаемые стили:
Пример этого сокращения со всеми используемыми свойствами (кроме |
Создание предупреждающего сообщения
Теперь, когда вы понимаете основной синтаксис, вы можете перейти к процессу создания полного примера окна предупреждения, который демонстрирует все аспекты работы с фоновыми изображениями.
Дизайн
Представьте, что графический дизайнер предоставил визуальный макет предупреждающего сообщения, которое вы хотите создать для своего веб-сайта. Предупреждение имеет светло-оранжевый цвет фона, чтобы выделить его среди окружающих абзацев.Он также имеет значок предупреждения в десяти пикселях от верхнего левого угла.
Обратите внимание, что макет содержит одну строку текста, но в будущем он может содержать больше. Одним из наиболее важных навыков веб-разработчика является предвидение того, как будет развиваться дизайн. Частью уважения художественного видения сайта является постоянство от запуска до редизайна. Таким образом, предупреждающее сообщение может содержать более одной строки текста или даже несколько абзацев, списков или других элементов HTML. Стремитесь быть как можно более независимым от элементов.Это повысит вероятность повторного использования кода и позволит настроить сайт так, чтобы он работал максимально быстро и эффективно. Макет выглядит как на рисунке 1.
Рис. 1. Макет окна предупреждения, сделанный графическим дизайнером.
Разработчик также предоставил значок, который мы должны использовать, как показано на рис. 2.
Рисунок 2: Значок предупреждения.
Код
Основываясь на том, что вы узнали о фонах CSS в первой части этой статьи, вы, возможно, уже представляете, как создать это предупреждающее сообщение.Я рекомендую вам попробовать построить его сейчас, а затем сравнить свою работу с примером ниже.
После создания окна предупреждений следуйте приведенным ниже пошаговым инструкциям. Каждый снимок экрана содержит ссылки на примеры кода, так что вы можете проверить исходный файл на каждом этапе. Поэкспериментируйте с кодом, увеличивая или уменьшая значения, и пробуйте альтернативы. Вы также можете продолжить, написав каждую новую строку кода в таком инструменте, как Opera Dragonfly или Firefox Firebug, чтобы сразу увидеть результаты каждого шага.
Создание хука или селектора CSS.
Сначала вам нужно создать предупреждение класса
, которое позволит вам подключить код CSS. Создайте новые файлы скелета CSS и HTML, свяжите таблицу стилей CSS с файлом HTML и добавьте в каждый следующий код:
Скопируйте следующий CSS и вставьте его в таблицу стилей:
.предупреждение { ... }
Скопируйте следующий HTML-код и вставьте его в HTML-документ:
<р>
Предупреждение! Здесь находится текст нашего предупреждающего сообщения.
Приведенный выше код оформляет оповещение с помощью класса
, а не id
, потому что это позволяет использовать более одного оповещения на странице. Например, вы можете добавить оповещения к элементу формы с несколькими потенциальными ошибками. Цель состоит в том, чтобы сделать ваш CSS как можно более гибким и ограничивать вещи в соответствии с дизайном при создании содержимого HTML.
На данный момент у вас есть прочная основа, но оповещение по-прежнему выглядит как обычный абзац, потому что вы еще не добавили никаких стилей.Далее вы добавите некоторые правила для его стилизации.
Примечание. Я намеренно выбрал , а не , чтобы ограничить предупреждение класса
абзацами; окна предупреждений могут легко содержать и другие элементы. Вы должны оставить как можно больше гибкости в своем CSS.
Добавление цвета фона
Вы уже узнали об использовании цвета фона при обработке текста в разделе Стилизация текста с помощью CSS . Те же принципы применимы к любому элементу HTML и могут быть объединены с фоновыми изображениями для создания визуальных эффектов.Если цвет фона не задан и не унаследован, по умолчанию он прозрачный.
Как показано ниже, вы можете добавить светло-оранжевый цвет фона в поле предупреждения, чтобы выделить его среди текста вокруг него. Важно не делать цвет фона слишком темным, потому что вам необходимо поддерживать разумный уровень контраста между текстом и цветом фона. Добавьте следующее свойство в правило CSS:
.предупреждение{
цвет фона: #FFFFCC;
}
Окно предупреждения теперь выглядит так, как показано на рис. 3.
Рис. 3. Окно предупреждения с добавленным цветом фона.
Применение фонового изображения
Далее вы можете добавить фоновое изображение к предупреждению. Путь к фоновому изображению должен быть заключен в url()
, как показано в коде ниже. Добавьте выделенную строку в правило CSS:
.предупреждение{
цвет фона: #FFFFCC;
фоновое изображение: URL (alert.png);
}
Окно предупреждения теперь выглядит так, как показано на рис. 4.
Рисунок 4. Фоновое изображение добавлено, но мозаика выглядит неправильно.
Помните, что каждое свойство фона имеет значение по умолчанию — если вы не указали значение, будет применено значение по умолчанию. Обратите внимание, что изображение располагается по всему предупреждению, как мозаичная плитка на кухонном полу. Что на вынос? По умолчанию фоновые изображения повторяются как по горизонтали, так и по вертикали. Повторяющиеся фоны особенно полезны для градиентов и шаблонов, заполняющих экран или определенный элемент HTML, но в данном случае этот эффект нежелателен.
Управление фоновым повтором
Рисунок 5. Как и фоновое изображение, эти плитки повторяются как по горизонтали, так и по вертикали.
Чтение спецификаций, безусловно, может быть пугающим, но спецификация — действительно хорошее место, чтобы понять, как должен работать CSS, прежде чем углубляться в мириады различий между браузерами. Прочтите часть Спецификации W3C, посвященную цветам и фону, и попытайтесь найти ключевое слово, которое следует использовать, если вы не хотите, чтобы фоновое изображение повторялось.Эта стратегия используется в примере ниже:
Обратите внимание, что есть раздел для каждого свойства фона, включая background-repeat. Под Value отображаются все возможные варианты, в том числе;
повторить
, повторить-x
, повторить-y
, не повторить
и наследовать
. По умолчанию ( initial ) фоновые изображения повторяются. Направление не указано, что означает, что изображение будет мозаичным как по горизонтали, так и по вертикали.Вы, вероятно, догадались, что no-repeat
— это значение, которое необходимо установить, чтобы изображение не замостилось в любом направлении. Добавьте следующую выделенную строку ниже в правило CSS:
.предупреждение{
цвет фона: #FFFFCC;
фоновое изображение: URL (alert.png);
фоновый повтор: без повтора;
}
Окно предупреждения теперь выглядит так, как показано на рис. 6.
Рис. 6. Окно предупреждения с одной копией фонового изображения (без мозаики).
Кроме того, вы можете выбрать повторение в обоих направлениях (например, кухонная плитка) или в любом направлении. Градиенты часто повторяются по горизонтали или по вертикали (см. рис. 7). Вам не нужно знать размер элемента HTML; вы просто вырезаете фрагмент из своего градиента и настраиваете его на повторение в нужном вам направлении; либо x по горизонтали, либо y по вертикали. Узоры часто повторяются в обоих направлениях, а значки обычно не повторяются. Вы изучите
background-repeat
в следующем примере.
Рис. 7. Зеленовато-желтые плитки в этом примере повторяются только по горизонтали.
Далее взгляните на практический пример с моего сайта. Просмотрите рисунок 8.
Рисунок 8: Повторяющийся пример с моего веб-сайта.
CSS, который я использовал для добавления этого декоративного эффекта, относительно прост. Я повторил фон по горизонтали, используя Repeat-x
:
корпус {
фоновый повтор: повтор-х;
}
Приложение
Атрибут вложения
позволяет указать, как ведет себя фон, когда пользователь прокручивает страницу вниз. Поведение по умолчанию —
scroll
, что заставляет фоновое изображение прокручиваться вместе с содержимым.
С другой стороны, установка background-attachment
на fixed
приводит к тому, что элемент прилипает к окну браузера, поэтому он остается на том же месте, когда прокручивается содержимое внутри элемента, к которому он прикреплен. Это создает некоторые странные эффекты, которые будут видны только при прокрутке прикрепленного HTML-элемента. W3C использует его для обозначения статуса своих спецификаций.Например, изображение «Рекомендация кандидата W3C» вверху слева. Прокрутите страницу вниз и обратите внимание, что изображение остается вверху слева. Он прикреплен к элементу корпуса , поэтому всегда виден.
Этот шаг не повлияет на наше отображение, потому что браузеры по умолчанию устанавливают фоновые изображения для прокрутки, но все равно добавляют это в код, чтобы узнать, как используется это свойство. Добавьте выделенную строку в правило CSS:
.
предупреждение{
цвет фона: #FFFFCC;
фоновое изображение: URL(alert.png);
фоновый повтор: без повтора;
background-attachment: прокрутка;
}
Как показано на рис. 9, визуальное отображение окна предупреждения не сильно отличается от того, что было раньше.
Рисунок 9: Дисплей не изменился.
Позиционирование изображения
Позиционирование — это точная настройка, позволяющая размещать фоновые изображения именно там, где это необходимо, как по горизонтали, так и по вертикали внутри элемента HTML. Это свойство принимает ключевые слова и числовые значения, такие как top
, center
, right
, 100%
, -10%
, 50px
и -30em
.
На рис. 10 показаны значения, которые можно использовать для размещения фоновых изображений в различных положениях.
Рисунок 10: Различные примеры положения фона с использованием ключевых слов, процентов и пикселей.
Приведенный ниже код позиционирует фоновое изображение. Цель состоит в том, чтобы расположить его в верхнем левом углу, но не касаясь сторон, поэтому вам нужно сместить его на 10 пикселей как сверху, так и слева. Это достигается путем добавления следующей выделенной строки в правило CSS:
. .тревога{
цвет фона: #FFFFCC;
фоновое изображение: URL (alert.png);
фоновый повтор: без повтора;
background-attachment: прокрутка;
фоновая позиция: 10px 10px;
}
Первое значение — смещение по горизонтали, второе — по вертикали. В этом случае значения совпадают. После внесения этих изменений окно оповещения должно выглядеть так, как показано на рис. 11.
Рис. 11. Использование позиционирования CSS для задания местоположения фонового изображения.
Совет. Выберите либо ключевые слова, либо числовые значения, но не объединяйте их.Старые браузеры могут игнорировать ваше объявление, если вы используете оба сразу. Использование справа
и снизу
даст тот же эффект, что и использование 100%
по горизонтали или вертикали соответственно.
Использование стенографии, чтобы собрать все воедино, как профессионал
Как вы уже знаете, некоторые свойства CSS можно группировать вместе. Фон и все его подсвойства можно сгруппировать в правилах CSS. Код CSS, описанный до сих пор, можно переписать в сокращенной форме следующим образом:
.тревога{
фон: #FFFFCC url(alert.png) без повтора прокрутки 10px 10px;
}
Совет: при группировании подсвойств background
всегда располагайте свойства в следующем порядке. Это важно как для кросс-браузерной совместимости, так и для организации и обслуживания таблиц стилей:
-
цвет
-
изображение
-
повтор
-
насадка
-
горизонтальный
позиционный -
вертикальное
положение
Попробуйте заменить старый код CSS в документе приведенным выше сокращением.После обновления пример должен выглядеть точно так же (см. рис. 12).
Рис. 12: Сокращение работает как шарм!
Эксперименты с кодом
Лучший способ запомнить все нюансы CSS — протестировать параметры самостоятельно. Попробуйте изменить некоторые свойства в примере и посмотрите, как разные значения влияют на отображение. Установите background-position
на 100% 100%
и обратите внимание, что это дает тот же результат, что и использование ключевых слов right
и bottom
.А если вы измените его на -5px 0
? Как вы думаете, почему часть изображения скрыта?
Проверка качества
Тестирование чрезвычайно важно для обеспечения хорошего пользовательского опыта. Тот факт, что сайт хорошо выглядит на вашем компьютере с вашей конкретной конфигурацией, не означает, что он будет хорошо выглядеть в любом браузере. Выполните следующие основные минимальные шаги при тестировании окна предупреждений:
.- Увеличьте или уменьшите объем текста внутри предупреждения.
- Увеличьте размер текста в браузере как минимум на два уровня.Определите, лучше ли использовать ems для позиционирования нашего изображения. Проверьте, что происходит, когда вы увеличиваете размер текста.
- Примените предупреждение
class
к другим элементам, таким какdiv
,p
,ul
,strong
илиem
. Как вы можете изменить код, чтобы сделать класс независимым? - Включить несколько абзацев и список внутри предупреждения
div
. Код еще работает? - Визуально проверьте оповещение в браузерах класса 1 (также известных как браузеры класса A).Мой совет: напишите код для хороших браузеров, а затем адаптируйте его для Internet Explorer — как только код заработает.
Тщательное тестирование является частью обучения написанию CSS. Чем внимательнее вы будете во время обучения, тем быстрее вы сможете программировать.
Спрайты
Пользователи хотят все. Они хотят, чтобы ваш сайт был гламурным, интерактивным, а также быстрым. Однако включение большого количества фоновых изображений CSS может значительно замедлить работу вашего сайта. Чем больше HTTP-запросов вы делаете, тем медленнее будет работать ваш сайт (HTTP-запрос возникает всякий раз, когда ваш компьютер обращается к веб-сайту, и ему необходимо попросить сервер отправить ему другой ресурс в дизайне сайта, например файл CSS или изображение… каждый дополнительный запрос означает более длительное время загрузки сайта).
Чтобы обойти это ограничение, вы можете объединить связанные значки в одно изображение, известное как спрайты CSS. Свойство background-position
позволяет затем поместить изображение в соответствующие позиции, чтобы значки отображались в окне элемента HTML, к которому прикреплены спрайты CSS.
Обратите внимание, что на рис. 13 для отображения значка земли в окне HTML можно поместить изображение с помощью слева вверху
. Чтобы изменить положение изображения так, чтобы отображался значок предупреждения, необходимо изменить положение фона на
-80px 0
.Отрицательное горизонтальное значение сдвигает изображение влево.
Рис. 13. Используйте спрайты CSS для сокращения HTTP-запросов.
Примечание. Если вы установите отрицательное положение фона, Safari будет повторять ваше изображение, даже если вы указали без повтора
. Это необходимо учитывать, когда вы начинаете работать с фоновыми изображениями для создания более сложных макетов.
Пример сложного спрайта и фонового изображения
Теперь взгляните на то, как вы можете использовать спрайты CSS.Допустим, дружелюбный дизайнер прислал нам новый макет. Это иллюстрирует список ссылок на целевой странице блога. Он указывает на профиль блоггера в LinkedIn, RSS-канал, фотографии Flickr и закладки. Оценивая каждую ссылку, обратите внимание на градиент, начинающийся в центре как белый и переходящий в серый вверху и внизу ссылки. И чтобы еще больше усложнить ситуацию, дизайнер спросил, можем ли мы сделать каждую ссылку просто белой без изгибов, когда посетители наводят курсор на ссылку, как показано на рис. 14.
Рис. 14: Макет нового дизайна.
Логотипы могут быть включены с использованием элементов img
в разметке. Однако использование спрайтов CSS — гораздо лучшее решение. Спрайты загружаются быстрее, потому что должно загружаться только одно изображение (а не четыре), и это упорядочивает ваш HTML, уменьшая количество необходимой разметки.
Создание спрайта
Первый шаг включает вырезание четырех логотипов и создание набора спрайтов, как показано на рис. 15.
Рисунок 15: Набор спрайтов.
Вам также необходимо вырезать фрагмент градиента шириной 1 пиксель. Для большей наглядности я вырезал фрагмент чуть большего размера, но в реальном проекте сайта вам потребуется изображение только в один пиксель (см. рис. 16).
Рисунок 16: Фрагмент, используемый для градиентного фона.
HTML-код, создающий список, представляет собой неупорядоченный список, содержащий ссылки. Обратите внимание на пустые элемента span
внутри ссылок. Очень важно не иметь фиксированных высоты
и ширины
для элементов, содержащих текст.Ведь вы не представляете, насколько большим будет текст. Что произойдет, если сайт будет переведен на немецкий язык? Вы можете использовать эти дополнительные интервалы для отображения логотипов. В качестве альтернативы вы можете решить, что не хотите, чтобы посторонняя несемантическая разметка загромождала ваш HTML. В этом случае вам нужно будет использовать спрайт большего размера и оставить пустое пространство между значками. Имейте в виду, что эта стратегия медленнее для пользователей с медленным соединением, особенно для тех, кто использует мобильные телефоны для просмотра сайта. Код для списка показан ниже.Скопируйте его, а затем вставьте в HTML-документ:
<ул>
Резюме
RSS-канал
Фото
Ссылки
Добавьте следующий CSS в новый файл CSS и свяжите его с документом HTML:
.
навигация, .navigation li {
маржа: 0;
заполнение: 0;
}
.навигация ли {
верхняя граница: 1px сплошной белый;
тип стиля списка: нет;
}
.навигация ли {
фон: #E2E2E2 url(sprite_gradient_bkg.jpg) repeat-x слева по центру;
отступ: 20 пикселей;
дисплей: блок ;
семейство шрифтов: Arial, Helvetica, без засечек;
цвет:#333;
размер шрифта: 18px;
текстовое оформление: нет;
}
.navigation li a: hover, .navigation li a: focus {
фон: прозрачный нет;
}
CSS использует оба фоновых изображения.Во-первых, взгляните на фоновое изображение с градиентом. Есть три интересные вещи, на которые стоит обратить внимание:
- Изображение повторяется по горизонтали (
повтор-x
.) Эта мозаика позволяет сделать такое маленькое изображение распределенным по всему списку. - Изображение центрировано по вертикали. Вы хотите, чтобы круглая часть изображения появлялась в середине элемента списка, поэтому вы должны использовать фоновую позицию
left center
. - В CSS я применил цвет фона того же серого цвета, что и серый в градиентном изображении.Это гарантирует, что если элемент вырастет, он не будет выглядеть сломанным. Для получения дополнительной информации об этом методе я рекомендую прочитать Bulletproof Web Design Дэна Седерхольма.
Последняя строка означает, что элемент не должен отображать цвет фона или изображение, когда посетитель наводит на него курсор или фокусируется на элементе с помощью клавиатуры. Вам может быть интересно, почему я применил свойства фона к ссылке, а не к элементу списка. Ответ заключается в том, что Internet Explorer 6 и более ранние версии не поддерживают псевдоклассы, такие как hover
для элементов, отличных от ссылок.Я внес изменения в код, чтобы учесть это ограничение.
Далее вы можете создать CSS для маленьких логотипов. Как обычно, вы можете начать с определения наиболее общего случая для всех элементов span
в вашем навигационном модуле. Именно здесь вы определяете изображение, которое будет использоваться всеми отрезками, настройку повторения и положение фона (каждое из них отличается, поэтому вы можете использовать первое). Вы можете использовать сокращение для этого правила. Обратите внимание, что комментарии CSS делят разделы нашего кода на управляемые фрагменты.Добавьте следующий код в конец файла CSS:
.навигационный диапазон {
background:url(sprite_logo.gif) без повторов слева вверху;
высота: 15 пикселей;
ширина: 15 пикселей;
поле справа: 20px;
display:-moz-inline-box;
дисплей: встроенный блок;
вертикальное выравнивание: посередине;
}
Завершив базовое форматирование, вы можете определить исключения или отличия каждого конкретного логотипа. В этом случае единственным изменением CSS является background-position
.Изображение каждого соответствующего элемента списка должно быть перемещено еще на 15 пикселей влево, поскольку каждое из изображений логотипа имеет ширину 15 пикселей. Добавьте следующее в конец файла CSS:
#rss диапазон {
фоновая позиция: -15px 0;
}
#фотографии охватывают {
фоновая позиция: -30px 0;
}
# ссылки охватывают {
фоновая позиция: -45px 0;
}
Сначала этот пример может показаться пугающим. Сосредоточьтесь на фоновых изображениях. В этом случае использование отрицательного значения пикселя сдвигает фоновое изображение влево, чтобы отображалась соответствующая часть изображения.Положительные значения перемещают фоновое изображение вниз и вправо, а отрицательные значения тянут изображение вверх и влево.
Поэкспериментируйте со значениями положения фона в готовом примере, чтобы лучше понять, как настроить положение спрайта.
Использование
от 10.02.2014 около 15:00 по центральному стандартному времени:
hoffmant99 внес небольшие изменения, чтобы пример спрайта заработал, хотя учащийся (читатель этой страницы) должен знать, что имена файлов не совпадают.Это можно исправить локально, измените имя с «sprite_logo» на «sprite_l» и «sprite_gradient_bkg.jpg» на sprite_g.jpg».
См. также
Внешние ресурсы
Авторы изображений
Вопросы для упражнений
Размер абзаца составляет 40 на 180 пикселей, а размер фонового изображения — 60 на 200 пикселей.
Будете ли вы видеть все изображение или только его часть? Почему?
Вы хотите, чтобы изображение располагалось в нижнем левом углу элемента
blockquote
— введите правильные значения.blockquote {фон: желтый URL (quote.png) прокрутка без повторения ____ ____ ;}
Допустим, вы хотите, чтобы к каждому
h3
в документе склассом
«вопроса» был применен шаблон градиента. Будете ли вы использоватьRepeat-x
,Repeat-y
,no-repeat
илиRepeat
для достижения чего-то похожего на пример ниже? Почему?
- Какой должна быть фоновая позиция примера в вопросе номер 3? Как можно творчески использовать цвет фона, чтобы убедиться, что фон может расширяться до любой высоты? Почему это важно?
- Какое сокращение можно использовать для удаления всех свойств фона?
- Каково назначение спрайтов CSS?
Чтобы иметь возможность редактировать изображение, оно должно быть частью исходного кода HTML позиции, которую вы редактируете. Хотя это имеет смысл, это не всегда очевидно. Например, с помощью CSS (каскадной таблицы стилей) изображения могут отображаться в тех местах, где фактический исходный код HTML вообще не содержит изображения.
Вы можете отредактировать исходный HTML-код позиции, чтобы увидеть, не происходит ли какой-либо обман CSS с помощью редактора HTML.
Например, если HTML выглядит так...
<дел> <дел>![]()
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
... и вы можете редактировать только текст, тогда, по-видимому, волшебный класс «фоновое изображение» заставляет изображение появляться за текстом.
В приведенном выше примере, если вы хотите изменить фактическое изображение, измените атрибут "src" тега "img" на URL-адрес другого изображения. Просто убедитесь, что URL-адрес изображения общедоступен, другими словами, изображение должно быть загружено на общедоступный веб-сайт.
Иногда исходный HTML-код вообще не имеет тега «img»:
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
дел>В этом случае изображение доставляется через класс CSS "background-image", а URL-адрес изображения является частью самой таблицы стилей. BlueConic не может редактировать саму таблицу стилей, поэтому в этом случае нет возможности редактировать изображение.
Подводя итог:
- Если вы не можете редактировать изображение во встроенном редакторе, попробуйте редактор HTML.
- В редакторе HTML нельзя загрузить изображение, поэтому вам придется использовать URL-адрес существующего изображения.
- Если в редакторе HTML нет URL-адреса изображения для редактирования, изображение, скорее всего, передается через CSS и не может быть изменено.
Оптимизация фоновых изображений CSS для Интернета. Руководство по оптимизации баннеров HERO | Дмитрий Покидов | pixboost
Все примеры из этой статьи доступны на моем демонстрационном веб-сайте: www.
midday.coffee
Давайте посмотрим, как мы можем реализовать баннер героя, используя необработанный HTML и CSS, добавим правило background-image и сделаем он подходит как для настольных компьютеров, так и для мобильных устройств.
Шаг 1. Разметка примера ниже достаточно проста и понятна. Мы создаем элемент
с class="banner", и двумя вложенными элементамив качестве заголовка и подзаголовка.
Шаг 2. Как видите, мы еще не установили изображение для баннера нашего героя. Для этого мы воспользуемся правилом CSS background-image :
Основные биты находятся в верхней части фрагмента здесь:
- background-image используется для установки URL-адреса . фонового изображения,
- background-size установлено значение «cover» , чтобы всегда масштабировать изображение для заполнения всего div,
- высота здесь необходима.
ничего не знаем о размерах изображения , поэтому мы должны установить их вручную.
Теперь мы можем поиграть с примером, чтобы увидеть, как он ведет себя, когда мы меняем размер окна браузера. Как видите, баннер героя всегда растягивается на всю ширину экрана.
Шаг 3. Наконец, давайте сделаем удобным для мобильных устройств , так как он занимает слишком много места по вертикали, а текст немного смещен.
В приведенном выше фрагменте мы используем медиа-запрос , который указывает браузеру переопределять CSS баннера, когда ширина окна браузера меньше 576 пикселей.
Давайте погрузимся глубже и сделаем наш геройский баннер настоящим героем!
К настоящему времени у нас должен быть полный и функциональный пример баннера героя. Поэтому мы можем копнуть немного глубже и посмотреть, как наше изображение ведет себя на разных устройствах .
В 2018 году 52,2 процента из всего трафика веб-сайтов по всему миру было сгенерировано через мобильных телефонов по сравнению с 50,3 процента в предыдущем году.
Статистика.com
Подробнее о тестировании производительности образов здесь .
Шаг 1. Во-первых, давайте посмотрим, как работает наш баннер героя. Два основных фактора, на которые следует обратить внимание, это размер изображения и время его загрузки .
Давайте воспользуемся Chrome Developer Tools для получения этих значений.
Чтобы открыть инструменты разработчика, нажмите F12 в веб-браузере Chrome.
Затем перейдите на вкладку Network и установите дросселирование на Fast 3G , чтобы наши измерения не зависели от интернет-соединения: изображение нашего баннера:
Измерение производительности с помощью Chrome Developer ToolsИнтересующие нас значения находятся в столбцах «Размер» и «Время» .
Давайте перенесем их в таблицу, которая станет нашим отчетом о производительности:
Отчет о производительности баннера герояМы записываем значения для настольных и мобильных экранов, так как планируем использовать адаптивные изображения для нашего баннера героя.
Обратите внимание, что мы всегда используем одно и то же изображение, чтобы сейчас можно было скопировать значения для настольных компьютеров в столбец для мобильных устройств.
Шаг 2. Пришло время оптимизировать наше фоновое изображение . В этой статье мы используем сервис Pixboost, чтобы сэкономить время, но вы можете отказаться от оптимизации и изменения размера изображений вручную и загрузить их на свой хостинг.Имейте в виду, что Pixboost не только предоставляет функции изменения размера и оптимизации изображений, но также:
- Поддержка формата следующего поколения — Webp
- Отложенная загрузка
- Встроенный CDN для доставки изображения в браузер
- Нет необходимости хранить разные вариации исходного изображения
- Поддержка HTTP/2
Шаг 3.
Оптимизация баннера Hero через оптимизатор PixboostОбновим URL фонового изображения, чтобы оно было оптимизировано:
Вот как настроить URL : интеграция на основе URL.
При желании вы можете изменить размер и оптимизировать изображение главного баннера с помощью других программ, таких как Photoshop или Gimp.
Шаг 4. Давайте повторно запустим наш тест производительности, зафиксируем и обновим результаты:
Тестирование производительности
- Как видите, мы только что сделали изображение на 25 КБ легче , что составляет 31% .
- Кроме того, с помощью CDN мы сократили более 1 секунды (34%) от времени загрузки .
Разве это не впечатляет?! Давайте продолжим!
Шаг 5. Тем не менее, у нас одинаковые результаты для ПК и мобильных устройств. Это не имеет большого смысла, учитывая, что экраны настольных компьютеров намного больше, чем мобильные.
Давайте это исправим.
Из нашего медиа-запроса, который мы представили ранее, мы видим, что максимальная ширина экрана составляет 576 пикселей. Кроме того, мы устанавливаем высоту нашего главного баннера на 400 пикселей, поэтому максимальный размер изображения будет 576x400 пикселей. Это означает, что это максимальный размер, который нам нужно обслуживать для всех мобильных устройств.
Все, что нам нужно сделать, это добавить отдельное свойство background-image к нашей контрольной точке CSS для мобильных устройств:
Мы используем операцию «подгонки» , которая изменит размер изображения до точного размера.Давайте посмотрим, как теперь выглядит наша производительность для ПК и мобильных устройств:
Ура!
Нам удалось уменьшить размер изображения до 28,7 КБ и время до 725 мс . Отличные новости для пользователей нашего сайта!
Подробнее об использовании Pixboost здесь: Обзор инструмента оптимизации Pixboost.
Это наш окончательный отчет об эффективности с результатами :
Фоновые изображения CSS — это мощный инструмент, который вы можете использовать для создания изображений мест на своем веб-сайте.Это особенно удобно в тех случаях, когда вам нужно плавных макетов и элементов наложения поверх ваших изображений.
Говоря, что вам все еще нужно следить за производительностью ваших изображений .
Вы можете использовать такие решения, как Pixboost, чтобы значительно улучшить производительность ваших изображений наряду с производительностью веб-сайта , коэффициентом конверсии и SEO-рейтингом .
В следующей статье мы объясним, как можно еще больше повысить производительность фоновых изображений с помощью Pixboost.js с функцией отложенной загрузки .
Фоновые изображения — Доступность для продуктов
Фоновые изображения, передающие информацию или значение, должны иметь доступную альтернативу.
Фоновые изображения недоступны для вспомогательных технологий, таких как программы чтения с экрана, и не поддерживаются на устройствах с минимальной поддержкой CSS. Кроме того, фоновое изображение может не загружаться.
Невозможно напрямую назначить альтернативный текст фоновому изображению CSS.Другой метод также должен использоваться для предоставления той же информации в визуальном виде и таким образом, который программно определяется вспомогательными технологиями, такими как программы чтения с экрана.
iOS
iOS не различает фоновые изображения и изображения переднего плана. Все изображения, добавляемые в представление, обычно добавляются как представление изображения (
UIImageView
). Если результирующее изображение является декоративным, необходимо установить для свойстваisAccessibilityElement
значениеfalse
, чтобы VoiceOver не мог его идентифицировать.При необходимости укажите «пустой»accessibilityLabel
.Если результирующее изображение передает информацию, необходимо установить для этого свойства значение
true
, а также предоставить текстовый эквивалент через атрибутaccessibilityLabel
.Пример iOS (Objective-C)
Значимое изображение:
[myFunctionalImage:setIsAccessibilityElement:YES]; [myFunctionalImage.setAccessibilityLabel:@"[альтернативный текст]";
Декоративное изображение:
[myFunctionalImage:setIsAccessibilityElement:НЕТ]; [мой функциональный образ.setAccessibilityLabel:@""];
Андроид
Android не различает фоновые изображения и изображения переднего плана. Все изображения, добавленные в представление, обычно добавляются как
ImageView
и должны быть снабжены атрибутомandroid:focusable
. Для этого атрибута должно быть установлено значениеtrue
для осмысленных изображений иfalse
для нефункциональных декоративных изображений.Атрибут
android:contentDescription
также должен быть предоставлен для осмысленных изображений, чтобы предоставить альтернативный текст для изображения.Он также должен быть указан для декоративных изображений и иметь значение@null
для поддержки более старых версий Android.Пример пропуска Android
Значимое изображение:
<Вид изображения android:id="@+id/myFunctionalImage" android:src="@drawable/[источник myFunctionalImage]" Android: layout_width = "match_parent" android:layout_height="wrap_content" андроид: фокусируемый = "истина" android:contentDescription="[Альтернативный текст]" />
Декоративное изображение:
<Вид изображения android:id="@+id/myNonFunctionalImage" android:src="@drawable/[источник myNonFunctionalImage]" Android: layout_width = "match_parent" android:layout_height="wrap_content" андроид: фокусируемый = "ложь" android:contentDescription="@null" />
HTML
Не существует специального метода назначения альтернативного текста фоновым изображениям на основе CSS.
Поэтому либо используйте встроенное изображение на основе HTML (используя элемент
img
), либо подходящую технику замены изображения в CSS и JavaScript для предоставления текстовой альтернативы. См. Assets.cms.gov — высококонтрастный режим для примера реализации.Пример передачи HTML
Собственный (предпочтительный) подход:
![]()
Тестирование
Процедуры
- Активировать программу чтения с экрана.
- Определите все изображения, содержащие информацию.
- Определите, какие изображения являются фоновыми.
- Убедитесь, что программа чтения с экрана объявляет альтернативный текст.
- В некоторых случаях может потребоваться проверка кода или тестирование на немобильном устройстве.
Результат
Верна следующая проверка:
- Изображение может быть сфокусировано с помощью вспомогательных технологий, и значимая информация объявляется.
Учебное пособие по фоновому изображению CSS с примерами
Фоновое изображение, вероятно, является одним из свойств CSS, которые все мы, фронтенд-разработчики, использовали хотя бы несколько раз в своей карьере.Большинство людей думают, что в фоновом изображении не может быть ничего необычного, но после быстрого исследования я пришел к другому выводу.
Каждый день в группах Facebook задают множество вопросов о фоновом изображении CSS и о множестве неизвестных трюков, которые могут помочь нам добиться удивительных эффектов и создавать потрясающие приложения и веб-сайты.
Вот почему я решил создать эту статью, чтобы показать вам, какие чудеса можно сделать с помощью такого простого свойства CSS. Я собрал семь советов и приемов, которые, как мне кажется, будут наиболее полезными, и создал несколько примеров кода, где вы сможете проверить, что там происходит.
И, как обычно, если вы не любите читать, перейдите на наш канал Youtube, чтобы посмотреть видеоверсию.
Давайте проверим, что стоит за фоном!
1. Как идеально подогнать фоновое изображение к области просмотра?
Давайте начнем с чего-то, что является скорее советом, чем трюком. Как часто с вами случалось, что вам приходилось бороться с фоновым изображением, чтобы сделать его идеально подогнанным, а не растянутым и непривлекательным?
Позвольте мне показать вам, как сделать так, чтобы фоновое изображение всегда идеально соответствовало окну вашего браузера!
****2.Как использовать несколько фоновых изображений с помощью CSS?
Хм, а что, если я захочу добавить более одного изображения на задний план?
Это возможно и не очень сложно, но может дать хороший результат, пока у вас есть идея смешать две графики во что-то красивое.
Я лично считаю, что это очень полезно, когда мы хотим добавить узор поверх фонового изображения, поэтому я покажу вам это в этом примере.
Посмотрим, как это работает!
3.
Как создать треугольное фоновое изображение?
Еще один интересный трюк CSS с фоновым изображением — это треугольное фоновое изображение. Это создает действительно красивый эффект, особенно когда мы хотим показать совершенно разные варианты, например день и ночь, или зиму и лето.
Это делается путем создания двух div, оба для полного окна просмотра, затем необходимо добавить фоновое изображение к ним обоим, а затем второму div требуется свойство clip-path для создания треугольной формы.
Давайте посмотрим код и результат!
****4. Как добавить наложение градиента к моему фоновому изображению?
Четвертый прием, который я хотел бы показать вам в этой статье, касается наложения на фоновое изображение. Это может быть полезно, когда вы хотите поместить текст на изображение, но оно слишком светлое и текст не виден, но также может улучшить само изображение.
Например, изображения заката можно усилить, добавив розово-оранжевый градиент или градиент от красного к прозрачному.
Давайте посмотрим, как мы можем легко добавить наложение градиента к фоновому изображению!
****5. Как создать анимацию фонового изображения с изменяющимся цветом?
А что, если вы можете решить, какой цвет лучше всего подходит для наложения фонового изображения? Тогда анимация на фоновых изображениях действительно полезна.
Использование анимированного наложения может придать вашему веб-сайту отличный конечный эффект, и люди наверняка его запомнят.
Давайте посмотрим, что мы можем сделать, используя фоновые изображения и анимацию в CSS!
6.Как сделать фоновое изображение в виде сетки?
Иногда это отличная идея, чтобы пойти немного дальше, особенно если проект связан с искусством или фотографией, тогда красивое фоновое изображение может быть создано с помощью сетки CSS и фонового изображения CSS.
О, если вы не знаете, что такое сетка CSS, проверьте это здесь.
Давайте взглянем!
7.
Как установить фоновое изображение в качестве цвета текста?
Используя фоновое изображение с background-clip, вы можете добиться красивого эффекта фонового изображения для текста.В некоторых случаях это может быть очень полезно, особенно когда вы хотите создать большой текстовый заголовок, но не такой скучный, как обычный цвет.
Давайте посмотрим, какой потрясающий эффект мы можем получить!
Заключение
В этой статье вы могли увидеть 7 различных советов и приемов, позволяющих создавать удивительные вещи с фоновым изображением. Я почти уверен, что эти советы будут полезны и позволят вам добиться потрясающих результатов в своих макетах. Если вы хотите узнать еще несколько интересных советов и приемов CSS, ознакомьтесь с нашей последней статьей советов и приемов по границам CSS и одним из предыдущих советов и приемов CSS.
Если вы когда-либо использовали какое-либо индивидуальное решение для своего фона, дайте мне знать в комментариях, я буду рад узнать, что еще можно сделать с помощью свойства фонового изображения CSS.
Спасибо за чтение,
Анна из Дуомли
Связанные чтения 📖
Как использовать анимацию css учебник с примерами
Руководство по созданию HTML-таблицы
Граница CSS с примерами учебника
Анна Данилек
Анна Данилек имеет высшее образование в области управления бизнесом.В течение многих лет она получала солидный опыт во фронтенд- и бэкенд-разработке, создавая программное обеспечение для известных ИТ-компаний. Ее опыт в области ИТ — это React.JS, Angular, React Native, Flutter, Node.JS и Nest.JS. В последние годы она вела бизнес для Duomly, уделяя особое внимание ИТ, а также онлайн-маркетингу, дизайну и созданию контента, например, ведению блогов и YouTube. В нерабочее время Анна ведет свой настоящий криминальный канал на YouTube, любит спорт, солнце и средиземноморскую кухню.
Подробнее об Анне Данилец
Если вам понравилось, поделитесь и прокомментируйте!
Что такое фоновое изображение в CSS? – СидмартинБио
Что такое фоновое изображение в CSS?
background-image Свойство CSS background-image устанавливает одно или несколько фоновых изображений для элемента.
Фоновые изображения рисуются на слоях контекста друг над другом. Первый указанный слой отображается так, как будто он находится ближе всего к пользователю.
Что означает размер фона в HTML?
размер фона: обложка; cover сообщает браузеру, что изображение всегда должно покрывать весь контейнер, в данном случае html. Браузер закроет контейнер, даже если ему придется растянуть изображение или немного обрезать края. Поскольку браузер может растянуть изображение, следует использовать фоновое изображение с достаточно высоким разрешением.
Что такое свойство background-image в JavaScript?
Свойство background-image указывает изображение, используемое в качестве фона элемента. По умолчанию изображение повторяется, поэтому оно покрывает весь элемент.
Могу ли я добавить фоновое изображение в свои браузеры?
Браузеры не предоставляют вспомогательным технологиям никакой специальной информации о фоновых изображениях. Это важно в первую очередь для программ чтения с экрана, поскольку программа чтения с экрана не объявляет о своем присутствии и, следовательно, ничего не сообщает своим пользователям.
Какова позиция фонового изображения по умолчанию в HTML?
По умолчанию фоновое изображение размещается в верхнем левом углу элемента и повторяется как по вертикали, так и по горизонтали. Совет. Фон элемента — это общий размер элемента, включая отступы и границы (но не поля).
Как уменьшить HTTP-запросы на изображения?
Вы также можете использовать background-image для изображений спрайтов, что является еще одним полезным методом для сокращения HTTP-запросов.
Другой вариант при использовании фона — указать браузеру создать градиент. Вот супер-пупер простой пример линейного градиента: технически говоря, градиенты — это просто еще одна форма фонового изображения.
Как разместить фоновое изображение на веб-сайте?
По умолчанию фоновое изображение размещается в верхнем левом углу элемента и повторяется как по вертикали, так и по горизонтали. Совет. Фон элемента — это общий размер элемента, включая отступы и границы (но не поля).Совет: Всегда устанавливайте фоновый цвет, который будет использоваться, если изображение недоступно.
.
Comments
Leave a Comment