要素visibility:hidden
に適用すると、スタイルはどのように機能しますか?html
特に、スクロールバーとは関係がありますか。IE7に関しては?
背景:Oracle Apexはこのコードを生成します。これが、IE7で断続的に非表示になる水平スクロールバーの問題を引き起こしているかどうかを調べようとしています。
<style> html {visibility:hidden;} </style>
仕様によると、visibility
プロパティは引き続きレイアウトに影響を与えるはずです。これは、要素がスクロール動作を引き起こした場合でも、スクロールに影響を与えてはならないことを意味します。また、に設定された子はすべて要素visible
内に表示される必要がありますhidden
。
このフィドルを使用して...
Firefox、IE 8-10、Opera
要素をレンダリングしませんが(visibility: hidden
必要に応じて)、それ自体のレンダリングを表示します。BoltClockが彼のコメントで述べたように、これは実際には予想されるかもしれません。html
body
html
background-color
background
html
「キャンバスの背景とその背景のペイント領域は、キャンバス全体をカバーするように拡張されています。」
これらのブラウザでは、内部に設定された要素を指定visible
の仕様としてvisibility
表示できるため、div
が表示され、スクロールできます。
ChromeとSafari
をレンダリングしませんbackground-color
がhtml
、を表示することはできdiv
、スクロールバーを表示します。そのため、Chromeはbackground
プロパティをキャンバスに伝播していません。これは、おそらくプロパティvisibility
がに設定されているためhidden
です。
IE7
要素のbackground-color
forは(Chromeのように)レンダリングされませんが、内部の要素に表示されるスクロールバーhtml
もありません。これは、仕様に従ってレイアウトに適切にとどまっていないことを示しているようです。div
したがって、visibility: hidden
プロパティが問題の一部である可能性があります。明らかに、背景ポイントはスクロールの問題とはまったく関係ありませんが、プロパティがhtml
要素にどのように影響するかについての全体的な質問のポイントに対処します。
background-color
私の意見では、ChromeとSafariのレンダリングは(要素がであるため)レンダリングされるとは思わないので、最も直感的(デザイナーとして期待できるもの)のように見えますhidden
が、同時に、子としての場合、ラッパーがに設定されてvisible
いる場合でも、ブラウザーがその子に代わってスクロールできるようにすることを期待します。ただし、Webkitブラウザーまたは他のブラウザーが仕様に最も近いかどうかは議論の余地があります。なぜなら、BoltClockが彼のコメントで述べているように、仕様は、要素のプロパティの伝播に影響を与えるべきかどうかを示していないようです)。html
visibility: hidden
visibility
html
background