一般的なオブジェクト ( ) に対して特定の値 ( ) に設定 (または両方) し、特定のoverflow
オブジェクト( ) に対して を変更せずにオーバーライド( に) したい。overflow-x
overflow-y
hidden
*
overflow-x
visible
foo
overflow-y
やった:
*{overflow: hidden;}
foo{overflow-x: visible;}
Google Chromeの開発者ツールで確認したところ、foo
オブジェクトについては
(fromoverflow: hidden
から*
)、overflow-x: visible
(fromから)の仕様ともにfoo
有効です。ただし、視覚的には、overflow: hidden
オーバーライドしているように見えますoverflow-x: visible
。これは私の予想に反します。つまり、より具体的な仕様が、より具体foo
的でない仕様をオーバーライドする必要があるということ*
です。
私が代わりに行うとき:
*{overflow: hidden;}
foo{overflow: visible;}
すると、意図したとおり (from ) が (from ) をオーバーライドしているように見えますが、foroverflow: visible
もfoo
に設定されています。これは望ましくありません。overflow: hidden
*
overflow-y
foo
visible
やoverflow
よりも仕様優先ということでしょうか?そうでない場合、何が起こっているのですか?overflow-x
overflow-y
編集おそらく、最初に考えたよりも複雑です。に設定
overflow-x
するvisible
と、水平スクロール バーがなくなります。これにより、オブジェクトの高さが減少し、干渉している可能性があります。
編集this questionとthis questionへの回答にヒントがあるようです。特に W3C 仕様では、 or のどちら
overflow-x
かoverflow-y
を設定しvisible
、もう一方を別の設定にすると、visible
がになるようですauto
。変な仕様です。