Os elementos HTML del
, strike
ou s
podem ser usados para um texto tachado efeito. Exemplos:
<del>del</del>
.... dá: del
<strike>strike</strike> and <s>strike</s>
.... dá: greve e greve
A text-decoration
propriedade CSS com um valor line-through
pode ser usada de maneira semelhante. O código...
<span style='text-decoration:line-through'>
text-decoration:line-through
</span>
... também renderiza a aparência: text-decoration: line-through
No entanto, a linha tachada é tipicamente da mesma cor que o texto.
CSS pode ser usado para tornar a linha de uma cor diferente?
Respostas:
Sim, adicionando um elemento de quebra-cabeça extra. Atribua a cor de linha desejada a um elemento externo e, em seguida, a cor de texto desejada ao elemento interno. Por exemplo:
...ou...
(Observe, no entanto, que isso
<strike>
é considerado obsoleto no HTML4 e obsoleto no HTML5 ( consulte também o W3.org ). A abordagem recomendada é usar<del>
se um verdadeiro significado de exclusão for pretendido ou usar um<s>
elemento ou estilo comtext-decoration
CSS como em o primeiro exemplo aqui.)Para fazer com que a tacada apareça em um: hover, uma folha de estilo explícita (declarada ou referenciada em
<HEAD>
) deve ser usada. (A:hover
pseudo-classe não pode ser aplicada com atributos STYLE embutidos.) Por exemplo:href
sejam configurados<a>
antes:hover
tenha efeito; os navegadores baseados no FF e no WebKit não.)fonte
del { position:relative }
e entãodel::after { content:'', position:absolute; top: 50%; left: 0; right:0; border-bottom: 1px solid #f00 }
.Desde fevereiro de 2016 , o CSS 3 tem o suporte mencionado abaixo. Aqui está um trecho da página de produto único de um WooCommerce com desconto de preço
Resultando em:
CSS 3 provavelmente vai ter o apoio direto usando a
text-decoration-color
propriedade . Em particular:Veja também
text-decoration-color
no CSS 3 draft spec .Se você quiser usar esse método imediatamente, provavelmente precisará prefixá-lo usando
-moz-text-decoration-color
. (Especifique-o também sem-moz-
, para compatibilidade com a frente.)fonte
text-decoration-color
sem prefixos.Eu usei um
:after
elemento vazio e decorei uma borda nele. Você pode até usar transformações CSS para girá-lo para uma linha inclinada. Resultado: CSS puro, sem elementos HTML adicionais! Desvantagem: não quebra em várias linhas, embora o IMO não deva usar tachado em grandes blocos de texto.fonte
Se você não se importa com o Internet Explorer \ Edge, a maneira mais simples de obter cores diferentes para o strike-through seria usar a propriedade CSS: text-decoration-color em conjunto com text-decoration: line-through;
- Não funciona com o Edge \ Internet Explorer
fonte
Esse CSS3 fará com que você passe mais facilmente pelas propriedades e trabalhe bem.
fonte
Adicionando ao @gojomo, você poderia usar o
:after
pseudoelemento para o elemento adicional. A única ressalva é que você precisará definir o seuinnerText
em umdata-text
atributo, pois o CSS temcontent
funções limitadas .fonte
Aqui está uma abordagem que usa um gradiente para falsificar a linha. Ele funciona com avisos de várias linhas e não precisa de elementos DOM adicionais. Mas como é um gradiente de plano de fundo, está por trás do texto ...
Veja violino: http://jsfiddle.net/YSvaY/
As paradas de cores em gradiente e o tamanho do plano de fundo dependem da altura da linha. (Usei LESS para cálculo e Autoprefixer depois ...)
fonte
Aqui está:
fonte
Na minha experiência, o
não é a melhor opção. Eu tive um colega de trabalho usando esse método sem testar o navegador cruzado, então tive que voltar e corrigi-lo porque causava problemas no Firefox. Minha recomendação pessoal seria usar o seletor: after para criar um rasurado. Dessa forma, ele pode voltar ao IE8 se você realmente quiser, sem conflitos de estilo e sólidos em todos os outros navegadores.
Também cria menos marcação e aproximadamente a mesma quantidade de estilo que, na minha opinião, é um grande negócio.
Portanto, se alguém encontrar problemas semelhantes, espero que isso possa ajudar:
obviamente, você pode usar transform: translate em vez de margens, mas este exemplo é para voltar ao IE8
fonte
A resposta do Blazemonger (acima ou abaixo) precisa ser votada - mas eu não tenho pontos suficientes.
Eu queria adicionar uma barra cinza em alguns botões redondos CSS de 20 px para indicar "não disponível" e ajustar o css do Blazemonger:
fonte
Atribuir a cor de linha desejada a um elemento pai também funciona para o elemento de texto excluído (
<del>
) - assumindo que o cliente processa<del>
como uma linha.http://jsfiddle.net/kpowz/vn9RC/
fonte
Aqui está um exemplo de implementação do jQuery - graças à resposta do gojomo e à sugestão do utype (+1 para ambos)
O CSS para isso pode ser
fonte
originalPrice
e o injeta novamente como HTML. Tente usar em.html()
vez de.text()
. Ou talvez use jQuerywrap()
.