Коллекция возможных методов установки изображений из 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 Selector:
.myClass::after {
content: url("somepicture.jpg");
}
Рендеринг по умолчанию: Исходный размер (не зависит от явного объявления размера)
Эта спецификация не полностью определяет взаимодействие: before и: after с замененными элементами (такими как IMG в HTML). Это будет определено более подробно в будущей спецификации.
но даже на момент написания этой статьи поведение с <IMG>
тегом все еще не определено, и хотя его можно использовать взломанным и не соответствующим стандартам , использование с <img>
не рекомендуется !
Отличный метод выбора, смотрите выводы ...
CSS1 «S
background-image:
собственности:
Первая рекомендация W3C: каскадные таблицы стилей, уровень 1 17 декабря 1996 г.
Это свойство устанавливает фоновое изображение элемента. При настройке фонового изображения также следует установить цвет фона, который будет использоваться, когда изображение недоступно. Когда изображение доступно, оно накладывается поверх цвета фона.
Это свойство существует с самого начала CSS и тем не менее заслуживает славного упоминания.
Рендеринг по умолчанию: Исходный размер (не масштабируется, только позиционируется)
Тем не менее ,
CSS3 «s background-size:
собственности на него улучшилось, позволяя несколько вариантов масштабирования:
Последний статус W3C: Кандидатская рекомендация CSS Backgrounds and Borders Модуль Уровень 3 9 сентября 2014
[length> | <percentage> | auto ]{1,2} | cover | contain
Но даже с этим свойством это зависит от размера контейнера.
Все еще хороший метод выбора, см. Выводы ...
CSS2 «S list-style:
собственности вместе с display: list-item
:
Первая рекомендация W3C: каскадные таблицы стилей, уровень 2, спецификация CSS2 12 мая 1998 г.
list-style-image:
свойство устанавливает изображение, которое будет использоваться в качестве маркера элемента списка (маркера)
Свойства списка описывают базовое визуальное форматирование списков: они позволяют таблицам стилей указывать тип маркера ( изображение , глиф или число)
display: list-item
- Это значение заставляет элемент (например, <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 «S border-image:
свойство рекомендации :
Последний статус W3C: Кандидатская рекомендация CSS Backgrounds and Borders Модуль Уровень 3 9 сентября 2014
Фон типа метод , который основан на определение размеров в довольно своеобразной манере (не определена для данного случая использования) и резервного свойства границ до сих пор (например. 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>
тег «S src
(но вот хак ), вместо этого мы можем украсить его:
.myClass {
border: solid;
border-width: 0 96px 96px 0;
border-image: url("http://upload.wikimedia.org/wikipedia/commons/9/95/Christmas_bell_icon_1.png")
0 100% 100% 0;
}
<img width="300" height="120"
src="http://fc03.deviantart.net/fs71/f/2012/253/b/0/merry_christmas_card_by_designworldwide-d5e9746.jpg"
class="myClass"
Хороший метод выбора, который следует рассмотреть после распространения стандартов.
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>
конечный тег.
.bulletPics > li {display: list-item}
#img1 {list-style: square inside url("http://upload.wikimedia.org/wikipedia/commons/4/4d/Nuvola_erotic.png")}
#img2 {list-style: square inside url("http://upload.wikimedia.org/wikipedia/commons/7/74/Globe_icon_2014-06-26_22-09.png")}
#img3 {list-style: square inside url("http://upload.wikimedia.org/wikipedia/commons/c/c4/Kiwi_fruit.jpg")}
<ul class="bulletPics">
<li id="img1">movie</li>
<li id="img2">earth</li>
<li id="img3">kiwi</li>
</ul>
Ограничения: трудно стилизовать ( width:
или float:
может помочь)
<figure>
Элемент [HTML5 +]
Элемент figure представляет некоторое содержимое потока, необязательно с заголовком, которое является автономным (например, полное предложение) и на него обычно ссылаются как на одну единицу из основного потока документа.
Элемент действителен без содержимого, но рекомендуется содержать <figcaption>
.
Таким образом, этот элемент можно использовать для комментирования иллюстраций, диаграмм, фотографий , списков кодов и т. Д.
Рендеринг по умолчанию: элемент выровнен по правому краю с отступом влево и вправо!
<object>
Элемент [HTML4 +]
Чтобы включить изображения, авторы могут использовать элемент OBJECT или элемент IMG.
data
Атрибут является обязательным и может иметь действительный тип MIME в качестве значения!
<object data="data:x-image/x,"></object>
Примечание: хитрость в использовании <object>
тега из CSS состоит в том, чтобы установить пользовательский допустимый MimeType, x-image/x
за которым не следует никаких данных (значение не имеет данных после запятой ,
)
Рендеринг по умолчанию: 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 , в настоящее время рабочий проект .