HTML/CSS の幅を 100% ではなく 99.9% に設定するのはなぜですか?
質問
多くの開発者が、私なら 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
99.99% を使用する必要があります。反対する人はいますか?
追加の参考資料:
- CSS ズーム プロパティに関する @Michael Stum のコメントにより、hasLayout のトリガーに関するこの興味深いリンクにたどり着きました。
zoom
: http://www.bennadel.com/blog/1354-The-Power-Of-ZOOM-Fixing-CSS-Issues-In-Internet-Explorer.htm. - @Andrew Dunn は、hasLayout でこの信じられないほど包括的なリンクを提供しました。 http://www.satzansatz.de/cssd/onhavinglayout.html
解決
の 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 のみ)。という設定らしいです width
99.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 (これは実に読み応えがあり、詳細な情報がたくさんあります)
他のヒント
これは何もなく、width
とauto
トリガーhasLayoutの真zoom
だし、それが幅を台無しにしないためzoom
は、より柔軟なプロパティ/値であるが、私はそれはあなたが開発者が99.9%を使用しまし理由はないと思いますます。
は、特定のフローティングの場合において、(パーセンテージで指定されている場合)フロートの組み合わせ幅が100%にならないことが必要だと、通常、後者のフロートが低下し、100%を超えたように
ソリューションは、単にIE用-1px右マージンを指定するか、合計99.99%にするのいずれかです。
私はバグを文書化しているここを。だから、それはあなたが見ていたものに関連しているかどうか、バグのリンクはそれを経験して誰にも役立ちます願っています。