Existe uma maneira hacky de fazer isso, usando o :before
pseudoelemento. Você fornece a :before
borda e, em seguida, gira-o com uma transformação CSS. Fazer dessa maneira não adiciona elementos extras ao DOM e adicionar / remover o tachado é tão simples quanto adicionar / remover a classe.
Aqui está uma demonstração
Ressalvas
- Isso só funcionará no IE8. IE7 não suporta
:before
, no entanto irá degradar graciosamente em navegadores que fazem o apoio :before
, mas não suportam transformações de CSS.
- O ângulo de rotação é fixo. Se o texto for mais longo, a linha não tocará nos cantos do texto. Esteja atento a isso.
CSS
.strikethrough {
position: relative;
}
.strikethrough:before {
position: absolute;
content: "";
left: 0;
top: 50%;
right: 0;
border-top: 1px solid;
border-color: inherit;
-webkit-transform:rotate(-5deg);
-moz-transform:rotate(-5deg);
-ms-transform:rotate(-5deg);
-o-transform:rotate(-5deg);
transform:rotate(-5deg);
}
HTML
<span class="strikethrough">Deleted text</span>
transform
que eu conheço a menos que possa funcionar comfilter
Você pode usar o plano de fundo
linear-gradient
comcurrentColor
para evitar a codificação da cor da fonte:Se você não precisa que o elemento esteja totalmente embutido, você pode usar um pseudo elemento para colocar a linha no topo do elemento. Desta forma, o ângulo pode ser ajustado alterando o tamanho do pseudoelemento:
fonte
fonte
Eu acho que você provavelmente poderia aplicar um efeito de rotação a uma régua horizontal. Algo como:
Com o CSS:
Violino
Sua milhagem pode variar dependendo do navegador e da versão, então não tenho certeza se eu recorreria a isso. Você pode ter que retirar algum código VML funky para suportar versões mais antigas do IE, por exemplo.
fonte
-7
graus, não+7
; nota 2:HR
é cinza no Chrome; isso é possível substituir?border-color
ebackground-color
. Atualizado FiddleGradiente CSS3
Meu exemplo não atenderá perfeitamente às suas necessidades, mas, para obter mais informações e ajustes engraçados, consulte http://gradients.glrzad.com/ .
O que você tem a fazer é criar um
background-gradient
doswhite-black-white
e posicionar suaopacity
para algo como48% 50% 52%
.fonte
Não acho que haja uma solução de CSS sustentável para isso.
Minha solução CSS pura seria colocar outro elemento de texto atrás de seu primeiro elemento de texto que seja idêntico em número de caracteres (caracteres sendo ''), uma eliminação de texto de linha através e uma transformação de rotação.
Algo como:
Exemplo de rotação de texto
Estou ansioso para ver melhores respostas de outros usuários.
fonte
Esta é uma questão antiga, mas como alternativa você pode usar Gradientes Lineares CSS3, por exemplo ( http://codepen.io/yusuf-azer/pen/ojJLoG ).
Para uma explicação extensa e uma verificação de solução MENOS
http://www.yusufazer.com/tutorials-how-to/how-to-make-a-diagonal-line-through-with-css3/
fonte
Fiz assim usando um SVG no HTM com uma classe CSS:
HTML:
CSS:
Pode haver maneiras mais simples e fáceis agora. Acabei de preparar isso em uma pitada para minha página de oferta especial de detalhes do produto. Espero que ajude alguém.
fonte
Experimentar
fonte
E aqui está uma versão extravagante:
fonte