2

私は次のリンクされたスタイルシートを持っています:

.dirContent {width: 190px, padding: 10px;)

私はこのスクリプトを実行しています:

var npad = $(".dirContent").css("padding");
alert(npad);

...しかし、それは機能しません-空白のアラートボックスを返します。このスクリプトを実行すると、次のようになります。

var npad = $(".dirContent").css("width");
alert(npad);

「190px」を返し、アラートは正しい値を表示します。

考え?

4

3 に答える 3

4

私が見る2つの問題:

  • 不正な形式のCSS(他の回答でカバーされています)
  • 速記プロパティの一貫性のない処理

基本的に、省略形のプロパティの取得は、ブラウザ間で一貫性のない動作をします。Chromeでは、「padding」プロパティをクエリすると、4つの辺すべてが等しくパディングされている場合は単一の部分の文字列( "1px")が返され、いずれかの辺でパディングが異なる場合は4つの部分( "1px 2px 3px 4px")の文字列が返されます。 。

しかし、IE9は何も返しません。Firefox18は何も返しません。

var npad = $(".dirContent").css("padding");
alert(npad);
npad = $(".dirContent").css("padding-left");
alert(npad);

いくつかのブラウザでこのサンプルを試してみると、違いがわかります:http: //jsfiddle.net/XDL3N/1/

あなたがそれについて考えるならば、この振る舞いは理にかなっています。省略形はプロパティの設定には最適ですが、プロパティの取得にはあまり役立ちません。マルチセグメント文字列を使用するには、マルチセグメント文字列を解析する必要があります。

于 2013-02-02T18:58:28.267 に答える
3

,CSSプロパティを終了するためにを使用しています。

.dirContent {width: 190px; padding: 10px;}

これがフィドルです

于 2013-02-02T18:52:40.873 に答える
0

cssプロパティの形式が正しくない場合は、次のようにする必要があります。

.dirContent {width: 190px; padding: 10px;}

ワーキングフィドル: http: //jsfiddle.net/XDL3N/

于 2013-02-02T18:54:09.313 に答える