Es gibt eine hackige Möglichkeit, dies mithilfe des Pseudoelements zu tun :before
. Sie geben dem Rahmen :before
einen Rand und drehen ihn dann mit einer CSS-Transformation. Wenn Sie dies auf diese Weise tun, werden dem DOM keine zusätzlichen Elemente hinzugefügt, und das Hinzufügen / Entfernen des Durchgestrichenen ist so einfach wie das Hinzufügen / Entfernen der Klasse.
Hier ist eine Demo
Vorsichtsmaßnahmen
- Dies funktioniert nur bis IE8. IE7 nicht unterstützt
:before
, wird jedoch degradieren graziös in Browsern , die nicht unterstützen , :before
aber keine Unterstützung für CSS - Transformationen.
- Der Drehwinkel ist fest. Wenn der Text länger ist, berührt die Linie nicht die Ecken des Textes. Sei dir dessen bewusst.
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
, von dem ich weiß, es sei denn, es kann funktionierenfilter
Sie können Hintergrund verwenden
linear-gradient
mit verwendencurrentColor
, um eine Hardcodierung der Schriftfarbe zu vermeiden:Wenn das Element nicht vollständig inline sein muss, können Sie ein Pseudoelement verwenden, um die Linie über dem Element zu platzieren. Auf diese Weise kann der Winkel durch Ändern der Größe des Pseudoelements angepasst werden:
quelle
quelle
Ich denke, Sie könnten wahrscheinlich einen Rotationseffekt auf eine horizontale Regel anwenden. Etwas wie:
Mit dem CSS:
Geige
Ihr Kilometerstand kann jedoch je nach Browser und Version variieren, daher bin ich mir nicht sicher, ob ich darauf zurückgreifen würde. Möglicherweise müssen Sie funky VML-Code abrufen, um beispielsweise ältere Versionen von IE zu unterstützen.
quelle
-7
Grad, nicht+7
; Anmerkung 2:HR
ist in Chrome grau; ist das möglich zu überschreiben?border-color
undbackground-color
. Aktualisiert FiddleCSS3-Gradient
Mein Beispiel wird Ihre Anforderungen nicht perfekt erfüllen, aber für weitere Informationen und lustige Verbesserungen siehe http://gradients.glrzad.com/ .
Was Sie tun müssen, ist ein
background-gradient
von zu erstellenwhite-black-white
und Ihropacity
auf so etwas zu positionieren48% 50% 52%
.quelle
Ich glaube nicht, dass es dafür eine nachhaltige CSS-Lösung gibt.
Meine reine CSS-Lösung wäre, ein anderes Textelement hinter Ihrem ersten Textelement zu platzieren, das in der Anzahl der Zeichen identisch ist (Zeichen sind ''), eine Textdekleration der Durchleitung und eine Transformation der Drehung.
Etwas wie:
Beispiel für eine Textrotation
Ich freue mich auf bessere Antworten von anderen Benutzern.
quelle
Dies ist eine alte Frage, aber als Alternative können Sie beispielsweise lineare CSS3-Verläufe verwenden ( http://codepen.io/yusuf-azer/pen/ojJLoG ).
Für ausführliche Erklärungen und eine WENIGER Lösungsprüfung
http://www.yusufazer.com/tutorials-how-to/how-to-make-a-diagonal-line-through-with-css3/
quelle
Ich habe es so gemacht, indem ich eine SVG im HTM mit einer CSS-Klasse verwendet habe:
HTML:
CSS:
Es könnte jetzt einfachere und einfachere Wege geben. Ich habe das gerade zur Not für meine Seite mit Sonderangeboten für Produktdetails zusammengestellt. Hoffe es hilft jemandem.
quelle
Versuchen
quelle
Und hier ist eine schicke Version:
quelle