2011-11-03 23 views
6

Todas las otras respuestas que he descubierto solo eliminan la configuración del atributo, y no el atributo por completo. Estoy cambiando un elemento del posicionamiento absoluto al fijo. Necesito eliminar el atributo de posicionamiento correcto y reemplazarlo con margen-derecho para que el elemento esté en la posición correcta dentro de su DIV padre. Si no se elimina el atributo correcto, el elemento va completamente a la derecha de la pantalla, y no a la derecha de la DIV como lo necesito. ¿Alguien puede ofrecer una sugerencia sobre cómo lograr esto?Eliminar el atributo CSS utilizando Jquery

Respuesta

13

Inténtelo a su valor por defecto auto

$(element).css('right', 'auto'); 
+1

PS - la especificación CSS podría haber respondido esto para usted - http://www.w3.org/TR/CSS21/visuren.html#propdef-right – mrtsherman

+0

esto funcionó muy bien! Gracias. – user981053

+1

Mejor que un valor predeterminado explícito codificado duro es una cadena vacía (como lo demuestra @Derek) que permite aplicar otras reglas de hoja de estilo según corresponda. – Phrogz

2
$('div').css({'right' : '', 'margin-right' : '100px'}); 

Si eso no funciona, intente configurar derecho a su valor por defecto de auto

0

Inténtelo de right a 0px a continuación, establecer el margin-right.

$('div').css({'right' : '0px', 'margin-right' : '100px'}); 
0

Puede probar código

 $.fn.removeCss=function(toDelete) { 

      var props = $(this).attr('style').split(';'); 
      var tmp = -1; 

      for(var p=0; p<props.length; p++) { 
       if(props[p].indexOf(toDelete) !== -1) { 
        tmp=p 
       } 
      } 

      if(tmp !== -1) { 
       props.splice(tmp, 1); 
      } 

      return $(this).attr('style',props.join(';')); 
     } 

example usage: 
$(selector).removeCss('color'); 
1

En mi opinión después de la manera más limpia es quitar la propiedad por completo del elemento de CSSStyleDeclaration, en lugar de sobrescribir con algún tipo de nulo/nulo/default valor:

$(".foo").prop("style").removeProperty("right"); 
$(".foo").prop("style").removeProperty("background-color"); 
Cuestiones relacionadas