2011-04-26 22 views
6

Tengo problemas para "borrar" una línea que estoy usando en una fila de la tabla. No quiero el efecto de línea en el enlace. Estoy cambiando dinámicamente la clase tr con Javascript, así que me gustaría mantenerlo lo más simple posible.¿Cómo borrar el paso de línea para un elemento en una fila de la tabla?

Mi código actual:

HTML:

<table> 
<tr class="table-item"> 
<td>Text</td> 
<td><a href="#">Delete item</a></td> 
</tr> 
</table> 

CSS:

.table-item td { 
text-decoration: line-through; 
} 
.table-item a { 
text-decoration: none; 
} 

¿Alguna sugerencia?

+3

[MDC] (https://developer.mozilla.org/en/CSS/text-decoration#Notes) dice: “decoraciones de texto dibujan a través de los elementos descendientes. Esto significa que no es posible desactivar en un descendiente una decoración de texto que se especifica en uno de sus antepasados. " –

+0

Esa es de hecho una buena información, gracias. – frapser

Respuesta

5

Estaba jugando con él en jsFiddle. Parece que la única forma de hacerlo es envolver el otro contenido que desea line-through en otro elemento, como span.

Actualización: Código de jsFiddle, conforme a lo solicitado:

<table> 
    <tr class="table-item"> 
    <td><span>Text</span></td> 
    <td><a href="#">Delete item</a></td> 
    </tr> 
</table> 

CSS:

.table-item td span { 
    text-decoration: line-through; 
} 
0

Dependiendo de los requisitos del navegador (no va a funcionar en el viejo IE) se puede utilizar:

.table-item td:first-child { 
    text-decoration: line-through; 
} 
0

¿Está utilizando span, fuera de la cuestión?

a { 
    text-decoration: none; 
} 
td span{ 
text-decoration: line-through; 
} 

<table> 
<tr class="table-item"> 
<td><span>Text</span></td> 
<td><a href="#">Delete item</a></td> 
</tr> 
</table> 

O estrictamente usando la inyección de código con el estilo de la tachado?

0

No estoy seguro, por qué nadie ha señalado. Esto es realmente posible.

Aquí está el enlace a tocar el violín

JSFiddle

Adición display: inline-block el elemento que usted no desea mostrar a través de la línea hará el truco.

Probar:

.table-item td { 
    text-decoration: line-through; 
} 
.table-item a { 
    text-decoration: none; 
    display: inline-block; 
} 
Cuestiones relacionadas