0

要素floatedの位置がabsoluteorfixedであり、スクリプト$(el).css('float')が実行されている場合、Chrome は"left"を返しますが、他のすべての主要な (最新の) ブラウザーは"none"を返します。

どうしてこれなの?どうすればこれを回避できますか?

例: http://jsfiddle.net/ChPCD/7/ < 異なるブラウザで実行

編集: Explosion Pills に技術的な回答をありがとう。スクリプトを変更して、ポジショニングを一時的に静的に切り替えて、以前のフロート値を取得しました。それでも結果は同じクロスブラウザーであると考えてください = P

4

3 に答える 3

0

を使えば浮きはありませんposition: absolute;。多分それはあなたの1つに役立ちます

parseInt( $(el).css( 'left' ), 10)

また

$(el).position().left
于 2012-12-30T18:28:33.800 に答える
0

absoluteorのfixed配置はfloat動作をオーバーライドするため、異なるブラウザはオーバーライドされたプロパティの異なる値を返しているように見えます: 完全に破棄するか保持します。

おそらく、これらの要素を見つけるために別の方法を使用できます。おそらく、最初に適用されたのと同じルールに基づく jQuery セレクターですfloat。たとえば、次のようになります。

CSS div.float-left{float:left;}

jQuery $('div.float-left').each(foo);

于 2012-12-28T05:03:44.173 に答える
0

クロス ブラウザ サポートの素晴らしい世界へようこそ。

あなたの2つのオプションは次のとおりです。

1) ブラウザ固有のコードを記述します。何らかの方法で現在のブラウザを検出し、そのブラウザに固有のコードを実行します。

2) 別の方法を見つけます。たとえば、float 値をチェックするのではなく、特定のクラスやその他の属性を探すことができます。

于 2012-12-28T04:56:53.747 に答える