Коллекция возможных методов установки изображений из CSS
CSS2 * :after
псевдоэлемент или более новый синтаксис ::after
из CSS3 вместе с content:
свойством:
Первая рекомендация W3C: Каскадные таблицы стилей, уровень 2
Спецификация CSS2 12 мая 1998
Последняя рекомендация W3C: Селекторы уровня 3
Рекомендация W3C 29 сентября 2011 года
Этот метод добавляет содержимое просто после содержимого дерева документа элемента.
Примечание: некоторые браузеры экспериментально отображают свойство content
непосредственно через некоторые селекторы элементов, игнорируя даже самые последние рекомендации W3C, определяющие:
Применяется к: :before
и :after
псевдоэлементам
Синтаксис CSS2 (прямой совместимости):
.myClass:after {
content: url("somepicture.jpg");
}
Селектор CSS3:
.myClass::after {
content: url("somepicture.jpg");
}
Рендеринг по умолчанию: Исходный размер (не зависит от явного объявления размера)
Эта спецификация не полностью определяет взаимодействие: before и: after с замененными элементами (такими как IMG в HTML). Это будет определено более подробно в будущей спецификации.
, но даже на момент написания этой статьи поведение с тегом <IMG>
все еще не определено, и хотя его можно использовать взломанным и не соответствующим стандартам , использование с <img>
не рекомендуется !
Отличный метод-кандидат, см. Выводы ...
CSS1 background-image:
свойство:
Первая рекомендация W3C: Каскадные таблицы стилей, уровень 1 17 декабря 1996
Это свойство устанавливает фоновое изображение элемента. При настройке фонового изображения также следует установить цвет фона, который будет использоваться, когда изображение недоступно. Когда изображение доступно, оно накладывается поверх цвета фона.
Это свойство существует с самого начала CSS и, тем не менее, оно заслуживает славного упоминания.
Рендеринг по умолчанию: Размер оригинала (невозможно масштабировать, только позиционировать)
Однако ,
CSS3 's background-size:
улучшено свойство, благодаря возможности нескольких вариантов масштабирования:
Последний статус W3C: Рекомендация кандидата Модуль CSS "Фоны и границы" Уровень 3 9 сентября 2014
[length> | <percentage> | auto ]{1,2} | cover | contain
Но даже с этим свойством это зависит от размера контейнера.
Все еще хороший метод выбора, см. Выводы ...
CSS2 list-style:
свойство вместе с display: list-item
:
Первая рекомендация W3C: Каскадные таблицы стилей, уровень 2
Спецификация CSS2 12 мая 1998 года
list-style-image:
свойство устанавливает изображение, которое будет использоваться в качестве маркера элемента списка (маркера)
Свойства списка описывают базовое визуальное форматирование списков: они позволяют таблицам стилей указывать тип маркера ( image , глиф или число)
display: list-item
& mdash; Это значение заставляет элемент (например, <li>
в HTML) генерировать блок основного блока и блок маркера.
.myClass {
display: list-item;
list-style-position: inside;
list-style-image: url("someimage.jpg");
}
Сокращенное обозначение CSS: (<list-style-type> <list-style-position> <list-style-image>
)
.myClass {
display: list-item;
list-style: square inside url("someimage.jpg");
}
Рендеринг по умолчанию: Исходный размер (не зависит от явного объявления размера)
Ограничения:
Наследование будет передавать значения 'list-style' из элементов OL и UL в элементы LI. Это рекомендуемый способ указания информации о стиле списка.
Они не позволяют авторам указывать отдельный стиль (цвета, шрифты, выравнивание и т. Д.) Для маркера списка или корректировать его положение
Этот метод также не подходит для тега <img>
, поскольку преобразование не может быть выполнено между типами элементов, а вот ограниченный несовместимый хак , который не работает в Chrome.
Хороший метод-кандидат, см. Выводы ...
CSS3 border-image:
свойство рекомендация :
Последний статус W3C: Рекомендация кандидата Модуль CSS Фонов и границ Уровень 3 9 сентября 2014
A background-type метод, который основывается на довольно специфичном указании размеров (не определено для этого варианта использования) и свойства отступления границы пока (напр. border: solid
):
Обратите внимание, что, хотя они никогда не вызывают механизм прокрутки, начните
изображения все еще могут быть обрезаны предком или окном просмотра.
Этот пример иллюстрирует изображение , составленное только в виде правого нижнего угла украшение :
.myClass {
border: solid;
border-width: 0 480px 320px 0;
border-image: url("http://i.imgur.com/uKnMvyp.jpg") 0 100% 100% 0;
}
Применяется к: всем элементам, кроме элементов внутренней таблицы, когда border-collapse: collapse
Тем не менее он не может изменить тег <img>
src
(но это хак ), вместо этого мы можем украсить его:
Хороший кандидатный метод должен быть рассмотрен после распространения стандартов.
CSS3 element()
нотация рабочий проект Стоит также упомянуть:
Примечание. Функция element()
воспроизводит только внешний вид ссылочного элемента, а не фактическое содержимое и его структуру.
<div id="img1"></div>
<img id="pic1" src="http://i.imgur.com/uKnMvyp.jpg" class="hide" alt="wolf">
<img id="pic2" src="http://i.imgur.com/TOUfCfL.jpg" class="hide" alt="cat">
Мы будем использовать визуализированное содержимое одного из двух скрытых изображений , чтобы изменить изображение фон в #img1
на основе Выбор идентификатора через CSS:
#img1 {
width: 480px;
height: 320px;
background: -moz-element(#pic1) no-repeat;
background-size: 100% 100%;
}
.hide {display: none}
Примечания: экспериментальный и работает только с префиксом -moz
в Firefox и только со свойствами background
или background-image
, также требуются указанные размеры.
Выводы
- Любое семантическое содержание или структурная информация отправляются в HTML.
- Стилизация и презентационная информация идут в CSS.
- Для целей SEO не скрывать значимых изображений в CSS.
- Фоновая графика обычно отключается при печати.
- Пользовательские теги можно использовать и стилизовать из CSS, но примитивные версии Internet Explorer не понимают] ( IE не стилизует теги HTML5 (с shiv) ) без Javascript или CSS руководство .
- SPA (одностраничные приложения), как правило, включают изображения на заднем плане
Сказав это, давайте рассмотрим теги HTML, пригодные для отображения изображений:
Элемент <li>
[HTML4.01 +]
Идеальный вариант использования list-style-image
с методом display: list-item
.
Элемент <li>
может быть пустым, допускает содержимое потока , и даже разрешено пропускать конечный тег </li>
.
Ограничения: трудно стилизовать (width:
или float:
может помочь)
Элемент <figure>
[HTML5 +]
Элемент figure представляет некоторый контент потока, необязательно с заголовком, который является автономным (например, полное предложение) и на него обычно ссылаются как на одну единицу из основного потока документа.
Элемент действителен без содержимого, но рекомендуется содержать <figcaption>
.
Таким образом, элемент можно использовать для аннотирования иллюстраций, диаграмм, фотографий , списков кодов и т. Д.
Рендеринг по умолчанию: элемент выровнен по правому краю с отступом влево и вправо!
Элемент <object>
[HTML4 +]
Для включения изображений авторы могут использовать элемент OBJECT или элемент IMG.
Атрибут data
является обязательным и может иметь допустимое значение MIME в качестве значения!
<object data="data:x-image/x,"></object>
Примечание: хитрость в использовании тега <object>
из CSS состоит в том, чтобы установить custom valid MimeType x-image/x
без данных (значение не имеет данных после запятой * 1430) *)
Рендеринг по умолчанию: 300 x 150px, но размер можно указать в HTML или CSS.
Требуется браузер с поддержкой SVG и элемент <image>
для растровых изображений
Элемент <canvas>
[HTML5 +].
Атрибут width
по умолчанию равен 300 , а атрибут height
по умолчанию 150 .
Элемент <input>
с type="image"
Ограничения:
... элемент должен выглядеть как кнопка, чтобы указать, что элемент является кнопкой.
, за которым следует Chrome и визуализирует пустой квадрат 4x4px, когда нет текста
Частичное решение, установите value=" "
:
<input type="image" id="img1" value=" ">
Также обратите внимание на предстоящий элемент <picture>
в HTML5.1 , в настоящее время рабочий проект .