Die HTML - Elemente del
, strike
oder s
alle für einen Text strike-through - Effekt verwendet werden können. Beispiele:
<del>del</del>
.... gibt: del
<strike>strike</strike> and <s>strike</s>
.... gibt: Streik und Streik
Die CSS- text-decoration
Eigenschaft mit einem Wert line-through
kann auf ähnliche Weise verwendet werden. Der Code...
<span style='text-decoration:line-through'>
text-decoration:line-through
</span>
... wird auch so gerendert, dass es aussieht wie: Textdekoration: Line-Through
Die durchgestrichene Linie hat jedoch normalerweise dieselbe Farbe wie der Text.
Kann CSS verwendet werden, um die Linie in einer anderen Farbe zu gestalten?
Antworten:
Ja, indem Sie ein zusätzliches Umhüllungselement hinzufügen. Weisen Sie einem äußeren Element die gewünschte Durchgangsfarbe und dem inneren Element die gewünschte Textfarbe zu. Beispielsweise:
...oder...
(Beachten Sie jedoch, dass
<strike>
sich in HTML4 veraltet und überholt in HTML5 betrachtet ( siehe auch W3.org ). Der empfohlene Ansatz verwenden ,<del>
wenn eine wahre Bedeutung des Löschens soll, oder sonst ein verwenden<s>
Element oder Stil mittext-decoration
CSS wie in das erste Beispiel hier.)Damit das Durchgestrichen für einen: Hover angezeigt wird, muss ein explizites Stylesheet (deklariert oder referenziert in
<HEAD>
) verwendet werden. (Die:hover
Pseudoklasse kann nicht mit Inline-STYLE-Attributen angewendet werden.) Zum Beispiel:href
Einstellungen vorgenommen werden,<a>
bevor dies:hover
Auswirkungen hat. FF- und WebKit-basierte Browser tun dies nicht.)quelle
del { position:relative }
und danndel::after { content:'', position:absolute; top: 50%; left: 0; right:0; border-bottom: 1px solid #f00 }
.Ab Februar 2016 bietet CSS 3 die unten genannte Unterstützung. Hier ist ein Ausschnitt aus einer einzelnen WooCommerce-Produktseite mit Preisnachlass
Ergebend:
CSS 3 wird wahrscheinlich direkte Unterstützung bei der Verwendung der
text-decoration-color
Eigenschaft haben . Bestimmtes:Siehe auch
text-decoration-color
in der CSS 3-Entwurfsspezifikation .Wenn Sie diese Methode sofort verwenden möchten, müssen Sie sie wahrscheinlich mit dem Präfix verwenden
-moz-text-decoration-color
. (Geben Sie es aus Gründen der-moz-
Vorwärtskompatibilität auch ohne an .)quelle
text-decoration-color
ohne Präfixe.Ich habe ein leeres
:after
Element verwendet und einen Rand darauf verziert. Sie können sogar CSS-Transformationen verwenden, um sie für eine schräge Linie zu drehen. Ergebnis: reines CSS, keine zusätzlichen HTML-Elemente! Nachteil: Wird nicht über mehrere Zeilen gewickelt, obwohl IMO Sie ohnehin nicht für große Textblöcke durchgestrichen verwenden sollten.quelle
Wenn Sie sich nicht für den Internet Explorer \ edge interessieren, können Sie am einfachsten eine andere Farbe für das Durchstreichen erzielen, indem Sie die CSS-Eigenschaft verwenden: Textdekoration-Farbe in Verbindung mit Textdekoration: Line-Through;
- Funktioniert nicht mit Edge \ Internet Explorer
quelle
Dieses CSS3 erleichtert Ihnen das Durchlaufen von Eigenschaften und funktioniert einwandfrei.
quelle
Wenn Sie @gojomo hinzufügen, können Sie ein Pseudoelement
:after
für das zusätzliche Element verwenden. Die einzige Einschränkung ist, dass Sie IhreinnerText
in einemdata-text
Attribut definieren müssen, da CSS nur über eingeschränktecontent
Funktionen verfügt.quelle
Hier ist ein Ansatz, bei dem ein Gradient verwendet wird, um die Linie zu fälschen. Es funktioniert mit mehrzeiligen Streiks und benötigt keine zusätzlichen DOM-Elemente. Da es sich jedoch um einen Hintergrundverlauf handelt, befindet er sich hinter dem Text ...
Siehe Geige: http://jsfiddle.net/YSvaY/
Farbverläufe und Hintergrundgröße hängen von der Linienhöhe ab. (Ich habe WENIGER für die Berechnung und Autoprefixer danach verwendet ...)
quelle
Bitte schön:
quelle
Nach meiner Erfahrung die
ist nicht die beste Option. Ich ließ diese Methode von einem Kollegen verwenden, ohne den Cross-Browser zu testen. Daher musste ich zurückgehen und sie beheben, da sie Probleme in Firefox verursachte. Meine persönliche Empfehlung wäre, den: after-Selektor zu verwenden, um einen Durchstreich zu erstellen. Auf diese Weise kann es zu IE8 zurückkehren, wenn Sie wirklich ohne Stilkonflikte und solide über alle anderen Browser hinweg möchten.
Es erzeugt auch weniger Markup und ungefähr die gleiche Menge an Styling, was meiner Meinung nach eine ziemlich große Sache ist.
Wenn also jemand auf ähnliche Probleme stößt, kann dies hoffentlich helfen:
Natürlich könnten Sie transform: translate anstelle von Rändern verwenden, aber in diesem Beispiel wird auf IE8 zurückgegriffen
quelle
Blazemongers Antwort (oben oder unten) muss abgestimmt werden - aber ich habe nicht genug Punkte.
Ich wollte einen grauen Balken über einige runde CSS-Schaltflächen mit einer Breite von 20 Pixel hinzufügen, um "nicht verfügbar" anzuzeigen, und Blazemongers CSS optimieren:
quelle
Das Zuweisen der gewünschten Durchgangsfarbe zu einem übergeordneten Element funktioniert auch für das gelöschte Textelement (
<del>
). Dabei wird davon ausgegangen, dass der Client<del>
eine Durchgangsfarbe rendert .http://jsfiddle.net/kpowz/vn9RC/
quelle
Hier ist ein Beispiel für eine jQuery-Implementierung - dank der Antwort von gojomo und des Vorschlags von utype (+1 für beide)
Das CSS dafür könnte sein
quelle
originalPrice
und fügen ihn dann als HTML zurück. Versuchen Sie es mit.html()
anstelle von.text()
. Oder verwenden Sie jQuery'swrap()
.