Imaginando se é possível, de alguma forma, fazer com que a content
propriedade CSS insira o código html em vez de uma string :before
ou :after
um elemento como:
.header:before{
content: '<a href="#top">Back</a>';
}
isso seria bastante útil ... Isso poderia ser feito através de Javascript, mas usar css para isso tornaria a vida mais fácil :)
html
css
pseudo-element
css-content
zanona
fonte
fonte
Respostas:
Infelizmente, isto não é possível. De acordo com a especificação :
Em outras palavras, para valores de sequência, isso significa que o valor é sempre tratado literalmente. Nunca é interpretado como marcação, independentemente do idioma do documento em uso.
Como exemplo, usando o CSS fornecido com o seguinte HTML:
... resultará na seguinte saída:
<a href="#top"> Voltar </a> Título
fonte
url
atributos, adicionar um link não seria tão diferente nessa perspectiva.<img>
), elas estão sendo atraídas para os elementos existentes; portanto, ao aplicar imagens de fundo ou de lista, você não está realmente modificando o DOM.url()
, como em qualquer outra imagem.Como quase observado nos comentários da resposta do @ BoltClock, nos navegadores modernos , você pode adicionar alguma marcação html aos pseudoelementos usando o (
url()
) em combinação com o<foreignObject>
elemento svg's .Você pode especificar um URL apontando para um arquivo svg real ou criá-lo com uma versão dataURI (
data:image/svg+xml; charset=utf8, + encodeURIComponent(yourSvgMarkup)
)Mas observe que é principalmente um hack e que existem muitas limitações:
document.styleSheets
. para esta parteDOMParser
eXMLSerializer
pode ajudar .<img>
tags, isso não funcionará em pseudo-elementos (pelo menos a partir de hoje, não sei se ela está especificada em qualquer lugar que não deveria, por isso pode ser um recurso ainda não implementado).Agora, uma pequena demonstração de alguma marcação html em um pseudo elemento:
fonte
url('/relativePathToMySvg/mySvg.svg')
e não funcionou/root/css/yourFile.css
, então uma função relativayourFile.svg
será apontada/root/css/yourFile.svg/
. Mas acho que me lembro que alguns UA anteriores tinham um bug e o tornavam relativo à baseURI do documento. Portanto, a maneira mais segura é usar o caminho absoluto.content: url('../../images/como-funciona.svg');
e funciona bemNa mídia paginada CSS3, isso é possível usando
position: running()
econtent: element()
.Exemplo do rascunho Conteúdo Gerado em CSS para o Módulo de Mídia Paginada :
.runner pode ser qualquer elemento e
heading
é um nome arbitrário para o slot.EDIT: para esclarecer, basicamente não há suporte para o navegador, então isso foi feito principalmente para referência futura / além das 'respostas práticas' já fornecidas.
fonte