Les éléments HTML del
, strike
ou s
peuvent tous être utilisés pour une grève par l' effet texte. Exemples:
<del>del</del>
.... donne: del
<strike>strike</strike> and <s>strike</s>
.... donne: grève et grève
La text-decoration
propriété CSS avec une valeur line-through
peut être utilisée de la même manière. Le code...
<span style='text-decoration:line-through'>
text-decoration:line-through
</span>
... s'affichera également comme suit: text-decoration: line-through
Cependant, la ligne barrée est généralement de la même couleur que le texte.
Le CSS peut-il être utilisé pour rendre la ligne d'une couleur différente?
Réponses:
Oui, en ajoutant un élément enveloppant supplémentaire. Attribuez la couleur de ligne souhaitée à un élément extérieur, puis la couleur de texte souhaitée à l'élément intérieur. Par exemple:
...ou...
(Notez cependant que cela
<strike>
est considéré comme obsolète en HTML4 et obsolète en HTML5 ( voir aussi W3.org ). L'approche recommandée est d'utiliser<del>
si une véritable signification de la suppression est prévue, ou autrement d'utiliser un<s>
élément ou un style avectext-decoration
CSS comme dans le premier exemple ici.)Pour faire apparaître le barré pour un: hover, une feuille de style explicite (déclarée ou référencée dans
<HEAD>
) doit être utilisée. (La:hover
pseudo-classe ne peut pas être appliquée avec des attributs STYLE en ligne.) Par exemple:href
soient définis sur l'<a>
avant:hover
a un effet, contrairement aux navigateurs basés sur FF et WebKit.)la source
del { position:relative }
-à- dire et puisdel::after { content:'', position:absolute; top: 50%; left: 0; right:0; border-bottom: 1px solid #f00 }
.Depuis février 2016 , CSS 3 dispose du support mentionné ci-dessous. Voici un extrait de la page produit unique d'un WooCommerce avec remise de prix
Résultant en:
CSS 3 aura probablement une prise en charge directe de l'utilisation de la
text-decoration-color
propriété . En particulier:Voir également
text-decoration-color
dans le projet de spécification CSS 3 .Si vous souhaitez utiliser cette méthode immédiatement, vous devrez probablement la préfixer à l'aide de
-moz-text-decoration-color
. (Indiquez-le également sans-moz-
, pour la compatibilité ascendante.)la source
text-decoration-color
sans préfixe.J'ai utilisé un
:after
élément vide et décoré une bordure dessus. Vous pouvez même utiliser des transformations CSS pour le faire pivoter pour une ligne inclinée. Résultat: pur CSS, pas d'éléments HTML supplémentaires! Inconvénient: ne passe pas sur plusieurs lignes, bien que l'OMI ne vous permette pas d'utiliser le barré sur de gros blocs de texte de toute façon.la source
Si vous ne vous souciez pas d'Internet Explorer \ edge, le moyen le plus simple d'obtenir une couleur différente pour le barré serait d'utiliser la propriété CSS: text-decoration-color en conjonction avec text-decoration: line-through;
- Ne fonctionne pas avec Edge \ Internet Explorer
la source
Ce CSS3 vous rendra la propriété plus facile et fonctionnera bien.
la source
En ajoutant à @gojomo, vous pouvez utiliser un
:after
pseudo-élément pour l'élément supplémentaire. La seule mise en garde est que vous devrez définir votreinnerText
dans undata-text
attribut car CSS a descontent
fonctions limitées .la source
Voici une approche qui utilise un dégradé pour truquer la ligne. Il fonctionne avec des frappes multilignes et n'a pas besoin d'éléments DOM supplémentaires. Mais comme c'est un dégradé de fond, c'est derrière le texte ...
Voir violon: http://jsfiddle.net/YSvaY/
Les arrêts de couleur du dégradé et la taille de l'arrière-plan dépendent de la hauteur de ligne. (J'ai utilisé LESS pour le calcul et l'Autoprefixer par la suite ...)
la source
Voici:
la source
D'après mon expérience,
n'est pas la meilleure option. J'ai demandé à un collègue d'utiliser cette méthode sans tester le navigateur croisé, j'ai donc dû revenir en arrière et le corriger car cela provoquait des problèmes dans Firefox. Ma recommandation personnelle serait d'utiliser le sélecteur: after pour créer un barré. De cette façon, il peut revenir à IE8 si vous le vouliez vraiment sans conflits de style et solide sur tous les autres navigateurs.
Cela crée également moins de balisage et à peu près la même quantité de style, ce qui, à mon avis, est assez important.
Donc, si quelqu'un d'autre rencontre des problèmes similaires, nous espérons que cela peut aider:
vous pouvez évidemment utiliser transform: translate au lieu des marges, mais cet exemple consiste à revenir à IE8
la source
La réponse de Blazemonger (au-dessus ou au-dessous) doit être votée - mais je n'ai pas assez de points.
Je voulais ajouter une barre grise sur certains boutons ronds CSS de 20 pixels de large pour indiquer «non disponible» et peaufiner le CSS de Blazemonger:
la source
L'affectation de la couleur de ligne souhaitée à un élément parent fonctionne également pour l'élément de texte supprimé (
<del>
) - en supposant que le client rend<del>
en ligne de ligne.http://jsfiddle.net/kpowz/vn9RC/
la source
Voici un exemple d'implémentation de jQuery - grâce à la réponse de gojomo et à la suggestion d'utype (+1 pour les deux)
Le CSS pour cela pourrait être
la source
originalPrice
, puis réinjectez-le en HTML. Essayez d'utiliser.html()
au lieu de.text()
. Ou peut-être utiliser jQuerywrap()
.