Los elementos HTML del
, strike
o s
pueden ser usados para un texto tachado efecto. Ejemplos:
<del>del</del>
....da: del
<strike>strike</strike> and <s>strike</s>
.... da: huelga y huelga
La text-decoration
propiedad CSS con un valor line-through
puede usarse de manera similar. El código...
<span style='text-decoration:line-through'>
text-decoration:line-through
</span>
... también se verá como: text-decoration: line-through
Sin embargo, la línea tachada es típicamente del mismo color que el texto.
¿Se puede usar CSS para hacer que la línea tenga un color diferente?
Respuestas:
Sí, agregando un elemento de envoltura adicional. Asigne el color de línea deseado a un elemento externo, luego el color de texto deseado al elemento interno. Por ejemplo:
...o...
(Tenga en cuenta, sin embargo, que
<strike>
se considera obsoleto en HTML4 y obsoleto en HTML5 ( consulte también W3.org ). El enfoque recomendado es usar<del>
si se pretende un verdadero significado de eliminación, o de lo contrario usar un<s>
elemento o estilo context-decoration
CSS como en el primer ejemplo aquí)Para hacer que el tachado aparezca para: hover, se
<HEAD>
debe usar una hoja de estilo explícita (declarada o referenciada ). (La:hover
pseudoclase no se puede aplicar con atributos STYLE en línea). Por ejemplo:href
se configuren<a>
antes:hover
tiene efecto; los navegadores basados en FF y WebKit no lo hacen).fuente
del { position:relative }
y luegodel::after { content:'', position:absolute; top: 50%; left: 0; right:0; border-bottom: 1px solid #f00 }
.A partir de febrero de 2016 , CSS 3 tiene el soporte mencionado a continuación. Aquí hay un fragmento de la página de un solo producto de WooCommerce con descuento de precio
Resultando en:
CSS 3 probablemente tendrá soporte directo usando la
text-decoration-color
propiedad . En particular:Ver también
text-decoration-color
en el CSS 3 borrador de especificaciones .Si desea utilizar este método de inmediato, probablemente deba prefijarlo utilizando
-moz-text-decoration-color
. (Especifíquelo también sin-moz-
, para compatibilidad de reenvío).fuente
text-decoration-color
sin prefijos.He usado un
:after
elemento vacío y he decorado un borde en él. Incluso puede usar transformaciones CSS para rotarlo para una línea inclinada. Resultado: CSS puro, ¡sin elementos HTML adicionales! Desventaja: no se ajusta a través de varias líneas, aunque IMO no debería usar tachado en grandes bloques de texto de todos modos.fuente
Si no le interesa Internet Explorer \ edge, la forma más sencilla de lograr un color diferente para tachado sería utilizar la propiedad CSS: text-decoration-color junto con text-decoration: line-through;
- No funciona con Edge \ Internet Explorer
fuente
Este CSS3 hará que la línea de propiedad sea más fácil y funcione bien.
fuente
Agregando a @gojomo, podría usar el
:after
pseudo elemento para el elemento adicional. La única advertencia es que necesitarás definir tuinnerText
en undata-text
atributo ya que CSS tienecontent
funciones limitadas .fuente
Aquí hay un enfoque que utiliza un gradiente para falsificar la línea. Funciona con ataques multilínea y no necesita elementos DOM adicionales. Pero como es un degradado de fondo, está detrás del texto ...
Ver violín: http://jsfiddle.net/YSvaY/
Las paradas de color de degradado y el tamaño del fondo dependen de la altura de la línea. (Utilicé MENOS para el cálculo y el Autoprefixer después ...)
fuente
Aqui tienes:
fuente
En mi experiencia el
No es la mejor opción. Tuve un compañero de trabajo que utilizó este método sin probar el navegador cruzado, así que tuve que volver y arreglarlo porque causaba problemas en Firefox. Mi recomendación personal sería usar el selector: after para crear un tachado. De esa manera, puede volver a IE8 si realmente lo desea sin conflictos de estilo, así como sólido en todos los demás navegadores.
También crea menos marcado y casi la misma cantidad de estilo, que en mi opinión es bastante importante.
Entonces, si alguien más se encuentra con problemas similares, espero que esto pueda ayudar:
obviamente, podría usar transform: translate en lugar de márgenes, pero este ejemplo es volver a IE8
fuente
La respuesta de Blazemonger (arriba o abajo) necesita ser votada, pero no tengo suficientes puntos.
Quería agregar una barra gris en algunos botones redondos CSS de 20 píxeles de ancho para indicar "no disponible" y modifiqué el CSS de Blazemonger:
fuente
Asignar el color de línea de destino deseado a un elemento primario también funciona para el elemento de texto eliminado (
<del>
), asumiendo que el cliente representa<del>
como una línea de paso.http://jsfiddle.net/kpowz/vn9RC/
fuente
Aquí hay una implementación de muestra de jQuery, gracias a la respuesta de gojomo y la sugerencia de utype (+1 para ambos)
El CSS para eso podría ser
fuente
originalPrice
y luego lo vuelve a inyectar como HTML. Intenta usar en.html()
lugar de.text()
. O tal vez use jQuery'swrap()
.