Eu estou fazendo uma assinatura de e-mail HTML com CSS inline (ie CSS em style
atributos), e estou curioso para saber se é possível usar os :before
e :after
pseudo-elementos.
Se sim, como eu implementaria algo assim com CSS embutido?
td { text-align: justify; }
td:after { content: ""; display: inline-block; width: 100%; }
html
css
css-selectors
pseudo-element
inline-styles
Bah-Bee
fonte
fonte
Respostas:
Você não pode especificar estilos embutidos para pseudoelementos.
Isso ocorre porque pseudoelementos, como pseudo-classes (veja minha resposta a essa outra pergunta ), são definidos no CSS usando seletores como abstrações da árvore de documentos que não podem ser expressas em HTML. Um
style
atributo embutido , por outro lado, é especificado no HTML para um elemento específico.Como os estilos embutidos só podem ocorrer em HTML, eles se aplicarão apenas ao elemento HTML em que estão definidos, e não a quaisquer pseudoelementos que ele gerar.
Como um aparte, a principal diferença entre pseudoelementos e pseudoclasses nesse aspecto é que as propriedades herdadas por padrão serão herdadas por
:before
e:after
do elemento gerador, enquanto os estilos de pseudoclasses simplesmente não se aplicam. No seu caso, por exemplo, se vocêtext-align: justify
inserir um atributo de estilo embutido para umtd
elemento, ele será herdado portd:after
. A ressalva é que você não pode declarartd:after
com o atributo de estilo embutido; você deve fazer isso na folha de estilo.fonte
como mencionado acima: não é possível chamar uma linha pseudo-classe / elemento CSS. o que eu fiz agora é: dê ao seu elemento um identificador único, por exemplo, um ID ou uma classe única. e escreva um
<style>
elemento de ajustefugly, mas o que inline css não é ..?
fonte
scoped
estilos e:root
pseudo-classe (isso é tão legal):<article><style scoped>:root:before { content: "*";}</style><!-- something --></article>
.:scope
pseudo-classe:<article><style scoped>:scope:before { content: "*";}</style><!-- something --></article>
scope
atuais ( estilos d) e CSS Spec (:scope
) . Eu deveria ter sido mais claro.Você pode usar os dados em linha
fonte
data-content
atributo comocontent
para um pseudoelemento. Não tem nada a ver com a criação de pseudoelementos com CSS embutido.Não, você não pode direcionar as pseudo-classes ou pseudo-elementos no inline-css, como David Thomas disse. Para mais detalhes, veja esta resposta de BoltClock sobre pseudo-classes
Também podemos escrever use same para os pseudo-elementos
fonte
Você não pode criar pseudo elementos no CSS embutido.
No entanto, se você pode criar um pseudo-elemento em uma folha de estilo, há uma maneira de estilizá-lo inline, definindo um estilo in-line para seu elemento pai e, em seguida, usando a palavra-chave herdada para estilizar o pseudo-elemento, desta forma:
às vezes isso pode ser útil.
fonte
Sim, é possível , basta adicionar estilos embutidos para o elemento que você adicionou após ou antes, Exemplo
fonte
::after
e os::before
pseudoelementos precisam doscontent: value
padrõescontent:none
que resultam em basicamente nada.Como mencionado anteriormente, você não pode usar elementos embutidos para estilizar pseudo classes . As pseudo-classes antes e depois são estados de elementos, não elementos reais. Você só pode usar JavaScript para isso.
fonte
Se você tiver controle sobre o HTML, poderá adicionar um elemento real em vez de um pseudo-elemento. : before e: after os pseudo-elementos são renderizados logo após a tag aberta ou logo antes da tag close. O equivalente em linha para este css
Seria algo como isto:
Tenha em mente; Seus elementos "reais" antes e depois e qualquer coisa com CSS embutido aumentam bastante o tamanho das suas páginas e ignoram as otimizações de carregamento de página que possibilitam o CSS externo e os pseudo elementos.
fonte
você pode usar
em css
fonte