Коллекция возможных методов для установки изображений из CSS
CSS2 :after
псевдоэлемент или синтаксис новее _ 2_ из CSS3 вместе с _ 3_:
Первая рекомендация W3C: Каскадные таблицы стилей, уровень 2 спецификации CSS2 12 мая 1998 г.
Последняя рекомендация W3C: Рекомендация W3C для селекторов уровня 3 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 background-size:
улучшил его, разрешив несколько вариантов масштабирования:
Последний статус W3C: Кандидат в рекомендации Уровень модуля фонов и границ CSS 3 9 сентября 2014 г.
[length> | <percentage> | auto ]{1,2} | cover | contain
Но даже с этим свойством это зависит от размера контейнера.
По-прежнему хороший кандидатный метод, см. Выводы ...
list-style:
в CSS2 свойство вместе с display: list-item
:
Первая рекомендация W3C: Каскадные таблицы стилей, спецификация CSS2 уровня 2 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");
}
Отображение по умолчанию: Исходный размер (не зависит от явного объявления размера)
Ограничения:
Этот метод также не подходит для тега <img>
, поскольку преобразование между типами элементов невозможно, а здесь ограничено, не совместимый взлом, который не работает в Chrome.
Хороший кандидатский метод, смотрите выводы ...
Свойство CSS3 border-image:
рекомендация:
Последний статус W3C: Кандидат в рекомендации Уровень модуля фонов и границ CSS 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>
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"
Хороший кандидатный метод, который следует рассмотреть после распространения стандартов.
Нотация element()
в CSS3 рабочий проект заслуживает упоминания:
Примечание. Функция 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 (с помощью заточки)) без указаний 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 150 пикселей, но размер можно указать в HTML или CSS.
Требуется браузер с поддержкой SVG и _ 57_ элемент для растровых изображений
Элемент <canvas>
[HTML5 +].
Атрибут width
по умолчанию равен 300, а атрибут height
- 150.
Элемент <input>
с type="image"
Ограничения:
... ожидается, что элемент будет похож на кнопку, чтобы указать, что элемент является кнопкой.
Chrome следует за ним и отображает пустой квадрат 4x4px, когда нет текста
Частичное решение, установите value=" "
:
<input type="image" id="img1" value=" ">
Также обратите внимание на предстоящий элемент <picture>
в HTML5.1, в настоящее время это рабочий проект.
person
CSᵠ
schedule
31.03.2015
getPropertyValue("--src")
см. jsfiddle.net/CustomElementsExamples/vjfpu3a2 - person Danny '365CSI' Engelman   schedule 13.03.2020