私がすべての選択に基本的なスタイルを割り当てるとき、例えば。
width: 300px;
padding: 0;
margin: 0;
border-width: 1px;
さまざまな状況でJavaScriptを使用して幅を取得すると、予期しない結果が発生します。
- 選択が表示されている場合、withは298pxです。
- 選択がdisplay:noneの場合、幅も298px(ff、jquery)です。
- selectがdisplay:noneのdivにある場合、幅は正しい 300pxです。
(結果も同じ割り当てです:box-sizing:border-box)
取得した幅は、使用しているブラウザやjavascriptフレームワークとは異なる場合がありますが、全体として、割り当てられた幅(300px)を取得できるようにしたいだけです。(ここで述べられている「形式的な奇妙さ」と関係があると思います:http://meyerweb.com/eric/thoughts/2007/05/15/formal-weirdness/、しかしなぜブラウザはユーザーによって割り当てられた幅??)
割り当てられた幅を取得するにはどうすればよいですか?実際にそれを行う方法はありますか?
例:
http://jsfiddle.net/ETCcH/5/(jqueryを使用する場合、またはmootoolsを使用する例の場合は5を4に置き換えます)
(さまざまなブラウザで表示して試してください)