2011-11-03 7 views
6

私が発見したその他の回答はすべて、属性の設定だけを削除し、属性は完全に削除しません。私は要素を絶対位置から固定位置に変更しています。私は右の配置属性を取り除き、要素が親DIV内の正しい位置になるようにmargin-rightで置き換える必要があります。右側の属性が削除されていない場合、要素は画面の右端に移動し、必要なようにDIVの右側には移動しません。誰もこれを達成する方法の提案を提供することはできますか?Jqueryを使用してCSS属性を削除します

答えて

13

することは問題が解決しない場合は、それauto

+1

PS - CSSの仕様はあなたのためにこれに答えたかもしれない - http://www.w3.org/TR/CSS21/visuren.html#propdef-right – mrtsherman

+0

は、これは素晴らしい仕事を!ありがとうございました。 – user981053

+1

明示的にハードコードされたデフォルト値よりも優れているのは、空の文字列(@Derekで示されているように)で、他のスタイルシート規則を適切に適用できます。 – Phrogz

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

にそれを設定してみてくださいmargin-right

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

のデフォルト値は0pxrightを設定してみてください、その後、セットの権利設定してみてくださいそのデフォルト値auto

$(element).css('right', 'auto'); 
0

あなたはクリーンな方法だけではなく、ヌル/ゼロ/デフォルトのいくつかの種類とそれを上書きする、要素のCSSStyleDeclarationから完全にプロパティを削除することです次のコード私の意見では

 $.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

試すことができます値:

$(".foo").prop("style").removeProperty("right"); 
$(".foo").prop("style").removeProperty("background-color"); 
関連する問題