2009-11-20 14 views
5

¿podemos anular css en línea mediante javascript? con compatibilidad con IE6.¿Cómo sobrescribir css en línea a través de javascript?

Encontré esta solución pure css pero no funciona en IE.

http://nataliejost.com/override-inline-styles-from-the-stylesheet/

http://www.sitepoint.com/blogs/2009/05/27/override-inline-css/

<div class="block"> 
    <span style="font-weight: bold; color: red;">Hello World</span> 
</div> 

podemos reemplazar este estilo en línea con esta solución

.block span[style]{ 
    font-weight: normal !important; 
    color: #000 !important; 
} 

Esta solución funcione en todos los principales navegador, excepto IE6.

+0

Se eliminó la [resuelto] detrás del título, el SO las preguntas nunca se resuelven finalmente, siempre puede haber una mejor alternativa o una variante notable. SO es una wiki después de todo. – markus

+0

ok gracias por esta información. No estaba al tanto de esto –

Respuesta

14

Por supuesto que puedes mediante el uso de CSS de jQuery() Método: http://docs.jquery.com/CSS/css#namevalue

Así que si por ejemplo, usted tiene el código HTML siguiente:

<p style="color:red;">A colored text</p> 

Usted puede cambiar el color de la siguiente manera en jQuery :

$("p").css("color","blue"); 

Y funcionará en IE6.

+0

genial! muchas gracias –

+0

y hay alguna solución de CSS puro para hacer esto –

+0

jQuerys css() en realidad agrega CSS en línea en el DOM. Hacerlo al revés, anular jQuerys css() con css es más difícil (funciona usando! Important, pero no en IE6) – David

3

!important funciona en IE6, es solo su selector span[style] no lo hará, ya que los selectores de atributos no son compatibles allí. Si puede encontrar otro selector que elija los tramos que desea anular, funcionará bien. Quizás solo .block span es suficiente?

contrario, sí, se puede cambiar desde JavaScript si es absolutamente necesario (no tiene ningún control sobre el marcado?):

span.style.fontWeight= 'normal'; 
span.style.color= 'black'; 
Cuestiones relacionadas