Просто интересно, можно ли каким-то образом заставить content
свойство CSS вставлять html-код вместо строки on :before
или :after
элемента вроде:
.header:before{
content: '<a href="#top">Back</a>';
}
это было бы очень удобно ... Это можно сделать через Javascript, но использование css для этого действительно облегчит жизнь :)
html
css
pseudo-element
css-content
zanona
источник
источник
Ответы:
К сожалению, это невозможно. Согласно спецификации :
Другими словами, для строковых значений это означает, что значение всегда обрабатывается буквально. Он никогда не интерпретируется как разметка, независимо от используемого языка документа.
В качестве примера, используя данный CSS со следующим HTML:
... приведет к следующему выводу:
<a href="#top"> Назад </a> Заголовок
источник
url
атрибутами, добавление ссылки не будет таким уж иным в этом ракурсе.<img>
), они просто рисуются на существующих элементах, поэтому, применяя фоновые изображения или изображения в списке, вы на самом деле не модифицируете DOM.url()
вместо этого вы должны указать внешний файл через , как с любым другим изображением.Как уже отмечалось в комментариях к ответу @ BoltClock, в современных браузерах вы можете добавить некоторую html-разметку к псевдоэлементам, используя (
url()
) в сочетании с<foreignObject>
элементом svg .Вы можете указать URL-адрес, указывающий на фактический файл SVG, или создать его с помощью версии dataURI (
data:image/svg+xml; charset=utf8, + encodeURIComponent(yourSvgMarkup)
).Но обратите внимание, что это в основном хак и что существует множество ограничений:
document.styleSheets
. для этой частиDOMParser
иXMLSerializer
может помочь .<img>
тегах, это не будет работать в псевдоэлементах (по крайней мере, на сегодняшний день, я не знаю, указано ли это где-либо, что не должно, так что это может быть еще не реализованной функцией).Теперь небольшая демонстрация некоторой HTML-разметки в псевдоэлементе:
источник
url('/relativePathToMySvg/mySvg.svg')
и это не сработало/root/css/yourFile.css
, то на негоyourFile.svg
будет указывать относительный тип funcIRI/root/css/yourFile.svg/
. Но, я думаю, я помню, что некоторые ранние UA имели ошибку и сделали ее относительно baseURI документа. Поэтому самый безопасный способ - использовать абсолютный путь.content: url('../../images/como-funciona.svg');
и это отлично работаетВ CSS3-страничных медиа это возможно с помощью
position: running()
иcontent: element()
.Пример из проекта CSS Generated Content for Paged Media :
.runner может быть любым элементом и
heading
произвольным именем для слота.РЕДАКТИРОВАТЬ: чтобы уточнить, в основном нет поддержки браузера, так что это было в основном предназначено для использования в будущем / в дополнение к уже «практическим ответам», данным уже.
источник