Можно ли установить src
значение атрибута в CSS? В настоящее время я занимаюсь:
<img src="pathTo/myImage.jpg"/>
и я хочу, чтобы это было что-то вроде этого
<img class="myClass" />
.myClass {
some-src-property: url("pathTo/myImage.jpg");
Я хочу сделать это без использования background
или background-image:
свойств в CSS.
getPropertyValue("--src")
см .: jsfiddle.net/CustomElementsExamples/vjfpu3a2Ответы:
Использование
content:url("image.jpg")
.Полное рабочее решение ( Live Demo):
Проверено и работает:
Проверено и не работает:
источник
content
наimg
это меняет свое поведение. Изображение начинает игнорировать атрибуты размера, и в Chrome / Safari оно теряет параметры контекстного меню, такие как «Сохранить изображение». Это потому, что присвоениеcontent
эффективно преобразуетimg
из пустого замененного элемента в нечто подобное<span><img></span>
.Есть решение, которое я нашел сегодня (работает в IE6 +, FF, Opera, Chrome):
Как это работает:
background-size
например:background-size:cover;
который помещает ваше изображение в выделенное пространство.Это также работает для изображений отправки-ввода, они остаются кликабельными.
Посмотреть демо: http://www.audenaerde.org/csstricks.html#imagereplacecss
Наслаждайтесь!
источник
src
атрибут, это метод, который вам нужен. +1 - мне очень помоглиКоллекция возможных методов установки изображений из CSS
CSS2 «сек
:after
псевдо-элемент или новый синтаксис::after
из CSS3 вместе сcontent:
имуществом:Первая рекомендация W3C: каскадные таблицы стилей, уровень 2 Спецификация CSS2 12 мая 1998 г.
Последняя рекомендация W3C: селекторы Уровень 3 Рекомендация W3C 29 сентября 2011 г.
Этот метод добавляет контент сразу после содержимого дерева документа элемента.
Примечание. Некоторые браузеры экспериментально отображают
content
свойство непосредственно на некоторых селекторах элементов, игнорируя даже самые последние рекомендации W3C, в которых определены:Синтаксис CSS2 (прямой совместимости):
CSS3 Selector:
Рендеринг по умолчанию: Исходный размер (не зависит от явного объявления размера)
но даже на момент написания этой статьи поведение с
<IMG>
тегом все еще не определено, и хотя его можно использовать взломанным и не соответствующим стандартам , использование с<img>
не рекомендуется !Отличный метод выбора, смотрите выводы ...
CSS1 «S
background-image:
собственности:Первая рекомендация W3C: каскадные таблицы стилей, уровень 1 17 декабря 1996 г.
Это свойство существует с самого начала CSS и тем не менее заслуживает славного упоминания.
Рендеринг по умолчанию: Исходный размер (не масштабируется, только позиционируется)
Тем не менее ,
CSS3 «s
background-size:
собственности на него улучшилось, позволяя несколько вариантов масштабирования:Последний статус W3C: Кандидатская рекомендация CSS Backgrounds and Borders Модуль Уровень 3 9 сентября 2014
Но даже с этим свойством это зависит от размера контейнера.
Все еще хороший метод выбора, см. Выводы ...
CSS2 «S
list-style:
собственности вместе сdisplay: list-item
:Первая рекомендация W3C: каскадные таблицы стилей, уровень 2, спецификация CSS2 12 мая 1998 г.
list-style-image:
свойство устанавливает изображение, которое будет использоваться в качестве маркера элемента списка (маркера)display: list-item
- Это значение заставляет элемент (например,<li>
в HTML) генерировать блок основного блока и блок маркера.Сокращенное CSS: (
<list-style-type> <list-style-position> <list-style-image>
)Рендеринг по умолчанию: Размер оригинала (не зависит от явного объявления размера)
Ограничения:
Этот метод также не подходит для
<img>
тега, поскольку преобразование не может быть выполнено между типами элементов, и вот ограниченный, несовместимый взлом , который не работает в Chrome.Хороший метод выбора, смотрите выводы ...
CSS3 «S
border-image:
свойство рекомендации :Последний статус W3C: Кандидатская рекомендация CSS Backgrounds and Borders Модуль Уровень 3 9 сентября 2014
Фон типа метод , который основан на определение размеров в довольно своеобразной манере (не определена для данного случая использования) и резервного свойства границ до сих пор (например.
border: solid
):Этот пример иллюстрирует изображение, составляемое только как украшение в правом нижнем углу :
Тем не менее он не может изменить давал
<img>
тег «Ssrc
(но вот хак ), вместо этого мы можем украсить его:Показать фрагмент кода
Хороший метод выбора, который следует рассмотреть после распространения стандартов.
CSS3 «сек
element()
нотация рабочий проект стоит упомянуть также:Мы будем использовать визуализированное содержимое одного из двух скрытых изображений, чтобы изменить фон изображения на
#img1
основе селектора идентификаторов через CSS:Примечания: он экспериментальный и работает только с
-moz
префиксом в Firefox и только надbackground
илиbackground-image
свойствами, также требует указанных размеров.Выводы
Сказав это, давайте рассмотрим HTML-теги, пригодные для отображения изображений:
<li>
Элемент [HTML4.01 +]Идеальный вариант использования
list-style-image
сdisplay: list-item
методом.<li>
Элемент, может быть пустым, позволяет содержание потока , и это даже разрешается опускать</li>
конечный тег.Показать фрагмент кода
Ограничения: трудно стилизовать (
width:
илиfloat:
может помочь)<figure>
Элемент [HTML5 +]Элемент действителен без содержимого, но рекомендуется содержать
<figcaption>
.Рендеринг по умолчанию: элемент выровнен по правому краю с отступом влево и вправо!
<object>
Элемент [HTML4 +]data
Атрибут является обязательным и может иметь действительный тип MIME в качестве значения!Примечание: хитрость в использовании
<object>
тега из CSS состоит в том, чтобы установить пользовательский допустимый MimeType,x-image/x
за которым не следует никаких данных (значение не имеет данных после запятой,
)Рендеринг по умолчанию: 300 x 150px, но размер можно указать в HTML или CSS.
<SVG>
тегТребуется браузер с поддержкой SVG и
<image>
элемент для растровых изображений<canvas>
Элемент [HTML5 +].<input>
Элемент сtype="image"
Ограничения:
который следует за Chrome и отображает пустой квадрат 4x4px, когда нет текста
Частичное решение, установите
value=" "
:Также обратите внимание на предстоящий
<picture>
элемент в HTML5.1 , в настоящее время рабочий проект .источник
я использовал пустое решение div, с этим CSS:
HTML:
источник
Я нашел лучший способ, чем предлагаемые решения, но он действительно использует фоновое изображение. Соответствующий метод (не может подтвердить для IE6) Кредиты: http://www.kryogenix.org/code/browser/lir/
CSS:
Старое изображение не видно, а новое видно, как и ожидалось.
Следующее аккуратное решение работает только для webkit
источник
content
свойство применяется только к псевдоклассам:before
и:after
. Кроме того, если вам нужно поддерживать IE7 или более раннюю версию, я думаю, чтоcontent
поддержка не существует. Тем не менее, очень заманчиво.content
Свойство применяется ко всем элементам. http://www.w3.org/TR/css3-content/#contentОни правы. IMG - это элемент контента, а CSS - это дизайн. Но как насчет того, когда вы используете некоторые элементы или свойства контента в целях дизайна? У меня есть IMG на моих веб-страницах, которые должны измениться, если я изменю стиль (CSS).
Ну, это решение для определения представления IMG (на самом деле это не изображение) в стиле CSS.
Работает как часы :)
источник
background*
Вот очень хорошее решение -> http://css-tricks.com/replace-the-image-in-an-img-with-css/
Pro (s) и Con (s):
(+) работает с вектором изображения , которые имеют относительную ширину / высоту (вещь , что RobAu «s ответ не обрабатывает)
(+) является кросс - браузер (работает также для IE8 +)
(+) он использует только CSS. Поэтому нет необходимости изменять img src (или если у вас нет доступа / вы не хотите изменять уже существующий атрибут img src).
(-) извините, он использует атрибут background css :)
источник
Вы можете определить 2 изображения в своем HTML-коде и использовать,
display: none;
чтобы решить, какое из них будет видимым.источник
background-image
был не вариант. Я хотелimg
теги для целей SEO. Ваш ответ очень прост, элегантен и решает все мои проблемы! Браво! Также пользователю не нужно загружать оба изображения. Кроме того, я могу добавить любое количество изображений.Нет, вы не можете установить атрибут изображения src через CSS. Самое близкое, что вы можете получить, как вы говорите,
background
илиbackground-image
. Я бы не советовал делать это в любом случае, так как это было бы несколько нелогично.Тем не менее, существует решение для CSS3, если браузеры, на которые вы ориентируетесь, могут его использовать. Используйте,
content:url
как описано в ответе Pacerier . Вы можете найти другие кросс-браузерные решения в других ответах ниже.источник
Поместите несколько изображений в «управляющий» контейнер и измените класс контейнера. В CSS добавьте правила для управления видимостью изображений в зависимости от класса контейнера. Это даст тот же эффект, что и изменение
img src
свойства отдельного изображения.HTML:
CSS:
Обратите внимание, что он будет предварительно загружать все изображения, как с CSS
backround-image
, но в отличие от изменения сimg src
помощью JS.источник
Альтернативный способ
источник
Некоторые данные я бы оставил в HTML, но лучше определить src в CSS:
источник
Насколько я знаю, вы не можете. CSS - это стиль, а src - это контент.
источник
Чтобы повторить предыдущее решение и подчеркнуть чистую реализацию CSS, вот мой ответ.
Решение Pure CSS необходимо в тех случаях, когда вы получаете контент с другого сайта, и, таким образом, вы не можете контролировать доставляемый HTML. В моем случае я пытаюсь убрать брендинг лицензированного исходного контента, чтобы лицензиат не должен был рекламировать компанию, у которой он покупает контент. Поэтому я удаляю их логотип, сохраняя все остальное. Я должен отметить, что это входит в контракт моего клиента, чтобы сделать это.
источник
Я знаю, что это действительно старый вопрос, но никакие ответы не дают правильного объяснения, почему это никогда не может быть сделано. Хотя вы можете «делать» то, что ищете, вы не можете делать это действительным образом. Чтобы иметь действительный тег img, он должен иметь атрибуты src и alt.
Поэтому любой из ответов, дающий способ сделать это с помощью тега img, который не использует атрибут src, способствует использованию недопустимого кода.
Вкратце: то, что вы ищете, не может быть сделано в рамках структуры синтаксиса.
Источник: W3 Validator
источник
Или вы могли бы сделать это, что я нашел на паутине.
https://robau.wordpress.com/2012/04/20/override-image-src-in-css/
Так эффективно скрывает изображение и накладывает фон. О, что за хак, но если вам нужен тег IMG с альтернативным текстом и фоном, который можно масштабировать без использования JavaScript?
В проекте, над которым я сейчас работаю, я создал шаблон веточки героя
источник
Если вы не хотите устанавливать свойство фона, вы не можете установить атрибут src изображения, используя только CSS.
В качестве альтернативы вы можете использовать JavaScript, чтобы сделать такую вещь.
источник
С помощью CSS, это не может быть сделано. Но, если вы используете JQuery, что-то вроде этого поможет:
источник
Вы можете конвертировать его с помощью JS:
источник
Если вы пытаетесь добавить изображение в кнопку динамически в зависимости от контекста вашего проекта, вы можете использовать? принять ссылку на источник на основе результата. Здесь я использую mvvm design, чтобы позволить моему значению Model.Phases [0] определить, хочу ли я, чтобы моя кнопка была заполнена изображениями лампочки, в зависимости от значения фазы света.
Не уверен, что это поможет. Я использую JqueryUI, Blueprint и CSS. Определение класса должно позволить вам стилизовать кнопку в зависимости от того, что вы хотите.
источник
Я бы добавил это: фоновое изображение также можно расположить с помощью
background-position: x y;
(x по горизонтали и по вертикали). (..) Мой случай, CSS:источник
Код HTMl:
Код CSS:
Я изучал HTML после школы в течение нескольких дней и хотел знать, как это сделать. Выяснили фон, а затем соединили 2 и 2. Это работает на 100%, я проверил, если не убедитесь, что вы заполните необходимые вещи! Нам нужно указать высоту, потому что без этого не было бы ничего !!! Я оставлю эту базовую оболочку, которую вы можете добавить.
Пример:
PS Да, я пользователь Linux;)
источник
Любой метод, основанный на
background
илиbackground-image
вероятно потерпящий неудачу, когда пользователь печатает документ с отключенной «печатью цветов фона и изображений » . К сожалению, это типичный браузер по умолчанию.Единственный удобный для печати и совместимый с браузером метод - это метод, предложенный Bronx.
источник
Загрузка IMG src из определения CSS с использованием современных свойств CSS
src
определение в <IMG> запускает обработчик onerror: функция loadIMGJSFiddle: https://jsfiddle.net/CustomElementsExamples/vjfpu3a2/
Связанные SO ответы: WCPROPS
источник
Просто используйте HTML5 :)
источник