Il existe une manière piratée de le faire, en utilisant le :before
pseudo élément. Vous donnez :before
une bordure, puis faites-la pivoter avec une transformation CSS. Faire cela de cette façon n'ajoute aucun élément supplémentaire au DOM, et ajouter / supprimer le barré est un simple comme ajouter / supprimer la classe.
Voici une démo
Mises en garde
- Cela ne fonctionnera que jusqu'à IE8. IE7 ne prend pas en charge
:before
, mais se dégradera gracieusement dans les navigateurs qui prennent en charge :before
mais ne prennent pas en charge les transformations CSS.
- L'angle de rotation est fixe. Si le texte est plus long, la ligne ne touchera pas les coins du texte. Soyez conscient de cela.
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 je connaisse à moins que cela puisse fonctionner avecfilter
Vous pouvez utiliser l'arrière-plan
linear-gradient
aveccurrentColor
pour éviter le codage en dur de la couleur de la police:Si vous n'avez pas besoin que l'élément soit entièrement en ligne, vous pouvez utiliser un pseudo élément pour placer la ligne au-dessus de l'élément. De cette façon, l'angle peut être ajusté en changeant la taille du pseudo élément:
la source
la source
Je pense que vous pourriez probablement appliquer un effet de rotation à une règle horizontale. Quelque chose comme:
Avec le CSS:
Violon
Votre kilométrage peut toutefois varier en fonction du navigateur et de la version, je ne suis donc pas sûr que je recourrais à cela. Vous devrez peut-être retirer du code VML génial pour prendre en charge les anciennes versions d'IE, par exemple.
la source
-7
degrés, non+7
; note 2:HR
est gris en Chrome; est-ce possible de passer outre?border-color
etbackground-color
. Mis à jour FiddleDégradé CSS3
Mon exemple ne répondra pas parfaitement à vos besoins mais, pour plus d'informations et des ajustements amusants, consultez http://gradients.glrzad.com/ .
Ce que vous devez faire est de créer un
background-gradient
dewhite-black-white
et placez votreopacity
à quelque chose comme48% 50% 52%
.la source
Je ne pense pas qu'il existe une solution css durable à cela.
Ma solution CSS pure serait de placer un autre élément de texte derrière votre premier élément de texte qui est identique en nombre de caractères (les caractères étant ''), une déclinaison de texte de ligne, et une transformation de rotation.
Quelque chose comme:
Exemple de rotation de texte
J'ai hâte de voir de meilleures réponses d'autres utilisateurs.
la source
C'est une vieille question, mais comme alternative, vous pouvez utiliser des dégradés linéaires CSS3 par exemple ( http://codepen.io/yusuf-azer/pen/ojJLoG ).
Pour des explications détaillées et une vérification de la solution MOINS
http://www.yusufazer.com/tutorials-how-to/how-to-make-a-diagonal-line-through-with-css3/
la source
Je l'ai fait de cette façon en utilisant un SVG dans le HTM avec une classe CSS:
HTML:
CSS:
Il pourrait y avoir des moyens plus simples et plus faciles maintenant. Je viens de préparer ceci à la rigueur pour ma page d'offre spéciale de détail de produit. J'espère que ça aide quelqu'un.
la source
Essayer
la source
Et voici une version fantaisie:
la source