34

多くの開発者が、私が 100% を使用する場所で 99.9% の HTML または CSS インライン スタイル幅を記述しているのを見てきました。99.9% を使用する正当な理由はありますか? 100% との効果的な違いはありますか?

編集して MSalters の非常に良い質問をリツイートしConsidering that 99.9% is one pixel off above 500 pixels, why not 99.99%? ます。彼の言う通りだと思いますdirty hack

追加の参考資料:

  • CSS ズーム プロパティに関する @Michael Stum のコメントにより、hasLayout のトリガーに関するこの興味深いリンクにたどり着きましzoom。 Internet-Explorer.htm
  • @Andrew Dunn は、hasLayout に関するこの信じられないほど包括的なリンクを提供しました: http://www.satzansatz.de/cssd/onhavinglayout.html
4

2 に答える 2

38

hasLayoutプロパティ_

これは、要素の IE 固有のhasLayoutプロパティを true に設定するために使用される汚いハックです。このhasLayoutプロパティは、「要素がコンテンツを描画してバインドし、他の要素と相互作用して関連し、アプリケーション/ユーザーイベントに反応して送信する方法を決定します。」要素を与えることlayoutは、Internet Explorer に現れる多くのレイアウト関連のバグを修正する簡単な方法です。

99.9%って何?

幅を 99.9% に設定することは、それをトリガーする 1 つの方法です。99.9% を使用する理由は、要素がwidth以外に設定されている場合にレイアウトが要素に与えられるためですauto。パーセンテージに設定すると、固定幅を使用する必要がなくなります。

jsFiddle でいくつかのテストを行った結果、実際には 99.9% の幅を使用する必要はなく、100% の幅を使用しても効果的であるという結論に達しました。http://jsfiddle.net/3qfjW/2/ (IE のみ)。width99.9%に設定するというのはよくある誤解だったようです

その他の方法

hasLayoutを使用してトリガーすることもできzoom: 1;ますが、要素の他のスタイル関連機能を台無しにしないため、これは多くの人に好まれる方法ですが、一部の開発者には使用できない無効な CSS コードでもあります。


参考文献

hasLayoutチェックアウトをトリガーするその他の方法については、 http: //www.satzansatz.de/cssd/onhavinglayout.htmlを参照してください。

このプロパティの詳細についてはhasLayout、MSDN の記事( hasLayout http://msdn.microsoft.com/en-us/library/bb250481(VS.85).aspx ) を参照してください(これは実際には非常に読みやすく、詳細な情報がたくさんあります)。

于 2010-10-01T13:12:34.240 に答える
3

hasLayoutをトリガーするwidth以外のすべてに当てはまり、幅を台無しにしないため、より柔軟なプロパティ/値ですが、それが開発者が 99.9% を使用しているのを見た理由ではないと思います。autozoomzoom

特定のフローティングのケースでは、IE6 が 100% を超えると誤って計算し、通常後者のフロートが低下するため、フロートの合計幅が 100% にならないようにする必要があります (パーセンテージで指定されている場合)。

解決策は、IE だけに -1px の右マージンを指定するか、合計を 99.99% にすることです。

私はここにバグを文書化しました。したがって、それがあなたが見たものに関連しているかどうかにかかわらず、バグリンクがそれを経験している誰かの助けになることを願っています.

于 2010-10-01T21:21:40.620 に答える