Estoy haciendo una firma de correo electrónico HTML con CSS en línea (es decir, en CSS style
atributos), y estoy curioso en cuanto a si es posible utilizar las :before
y :after
los pseudo-elementos.
Si es así, ¿cómo implementaría algo como esto con CSS en línea?
td { text-align: justify; }
td:after { content: ""; display: inline-block; width: 100%; }
Respuestas:
No puede especificar estilos en línea para pseudoelementos.
Esto se debe a que los pseudoelementos, como las pseudo-clases (vea mi respuesta a esta otra pregunta ), se definen en CSS utilizando selectores como abstracciones del árbol de documentos que no se pueden expresar en HTML. Un
style
atributo en línea , por otro lado, se especifica dentro de HTML para un elemento en particular.Dado que los estilos en línea solo pueden aparecer en HTML, solo se aplicarán al elemento HTML en el que están definidos, y no a ningún pseudoelemento que genere.
Por otro lado, la principal diferencia entre pseudo-elementos y pseudo-clases en este aspecto es que las propiedades que se heredan por defecto serán heredadas por
:before
y:after
desde el elemento generador, mientras que los estilos de pseudo-clase simplemente no se aplican en absoluto. En su caso, por ejemplo, si colocatext-align: justify
un atributo de estilo en línea para untd
elemento, será heredado portd:after
. La advertencia es que no puede declarartd:after
con el atributo de estilo en línea; debes hacerlo en la hoja de estilo.fuente
como se mencionó anteriormente: no es posible llamar a una pseudo-clase / -elemento css en línea. lo que hice ahora es: darle a su elemento un identificador único, f.ex. una identificación o una clase única. y escribir un
<style>
elemento apropiadofugly, pero ¿qué css en línea no es ...?
fuente
scoped
estilos y:root
de clase pseudo (esto es genial):<article><style scoped>:root:before { content: "*";}</style><!-- something --></article>
.:scope
pseudo-clase:<article><style scoped>:scope:before { content: "*";}</style><!-- something --></article>
scope
actual ( estilos d) y la especificación CSS (:scope
) . Debería haber sido más claro.Puedes usar los datos en línea
fuente
data-content
atributo comocontent
para un pseudo-elemento. No tiene nada que ver con la creación de pseudoelementos con CSS en línea.No, no puede apuntar a las pseudo-clases o pseudo-elementos en inline-css como dijo David Thomas . Para más detalles vea esta respuesta de BoltClock sobre Pseudo-clases
También podemos escribir uso igual para los pseudoelementos
fuente
No puede crear pseudo elementos en CSS en línea.
Sin embargo, si puede crear un pseudo elemento en una hoja de estilo, entonces hay una manera de darle estilo en línea estableciendo un estilo en línea en su elemento padre, y luego usando la palabra clave heredar para dar estilo al pseudo elemento, de esta manera:
a veces esto puede ser útil.
fuente
Sí, es posible , solo agregue estilos en línea para el elemento que agrega después o antes, Ejemplo
fuente
::after
y los::before
pseudoelementos necesitan locontent: value
contrario, lo que por defectocontent:none
resulta en básicamente nada.Como se mencionó anteriormente, no puede usar elementos en línea para diseñar pseudo clases . Las pseudo clases anteriores y posteriores son estados de elementos, no elementos reales. Es posible que solo puedas usar JavaScript para esto.
fuente
Si tiene control sobre el HTML, entonces podría agregar un elemento real en lugar de un pseudo uno. : before y: after los pseudo elementos se representan justo después de la etiqueta abierta o justo antes de la etiqueta cerrada. El equivalente en línea para este CSS
Sería algo como esto:
Tenga en cuenta; Sus elementos "reales" de antes y después y cualquier cosa con CSS en línea aumentará en gran medida el tamaño de sus páginas e ignorará las optimizaciones de carga de página que los CSS externos y los pseudoelementos hacen posible.
fuente
puedes usar
en css
fuente