Solo me pregunto si de alguna manera es posible hacer que la content
propiedad CSS inserte código html en lugar de una cadena :before
o :after
un elemento como:
.header:before{
content: '<a href="#top">Back</a>';
}
esto sería bastante útil ... Se podría hacer a través de Javascript, pero usar CSS para esto realmente facilitaría la vida :)
html
css
pseudo-element
css-content
zanona
fuente
fuente
Respuestas:
Desafortunadamente, esto no es posible. Por la especificación :
En otras palabras, para los valores de cadena esto significa que el valor siempre se trata literalmente. Nunca se interpreta como marcado, independientemente del idioma del documento en uso.
Como ejemplo, usando el CSS dado con el siguiente HTML:
... dará como resultado la siguiente salida:
<a href="#top"> Volver </a> Título
fuente
url
atributos, agregar un enlace no sería tan diferente en esta perspectiva.<img>
), solo se están dibujando en elementos existentes, por lo que al aplicar imágenes de fondo o de lista no estás modificando realmente el DOM.url()
, como con cualquier otra imagen.Como casi se señaló en los comentarios a la respuesta de @ BoltClock, en los navegadores modernos , en realidad puede agregar un marcado html a pseudoelementos usando el (
url()
) en combinación con el<foreignObject>
elemento svg .Puede especificar una URL que apunte a un archivo svg real o crearla con una versión dataURI (
data:image/svg+xml; charset=utf8, + encodeURIComponent(yourSvgMarkup)
)Pero tenga en cuenta que es principalmente un hack y que hay muchas limitaciones:
document.styleSheets
. para esta parte,DOMParser
yXMLSerializer
puede ayudar .<img>
etiquetas, esto no funcionará en pseudoelementos (al menos a partir de hoy, no sé si se especifica en algún lugar que no debería, por lo que puede ser una característica aún no implementada).Ahora, una pequeña demostración de algunas marcas html en un pseudo elemento:
fuente
url('/relativePathToMySvg/mySvg.svg')
y no funcionó/root/css/yourFile.css
, a continuación, un pariente funcIRI comoyourFile.svg
se señala a/root/css/yourFile.svg/
. Pero, creo recordar que algunos UA anteriores tenían un error y lo hicieron en relación con la baseURI del documento. Entonces, la forma más segura es usar la ruta absoluta.content: url('../../images/como-funciona.svg');
y funciona bienEn los medios paginados CSS3 esto es posible usando
position: running()
ycontent: element()
.Ejemplo del contenido generado por CSS para el borrador del módulo de medios paginado :
.runner puede ser cualquier elemento y
heading
es un nombre arbitrario para la ranura.EDITAR: para aclarar, básicamente no hay soporte para el navegador, por lo que esto estaba destinado principalmente para referencia futura / además de las 'respuestas prácticas' ya dadas.
fuente