一般的なオブジェクト ( ) に対して特定の値 ( ) に設定 (または両方) し、特定のoverflowオブジェクト( ) に対して を変更せずにオーバーライド( に) したい。overflow-xoverflow-yhidden*overflow-xvisiblefoooverflow-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-yfoovisible
やoverflowよりも仕様優先ということでしょうか?そうでない場合、何が起こっているのですか?overflow-xoverflow-y
編集おそらく、最初に考えたよりも複雑です。に設定
overflow-xするvisibleと、水平スクロール バーがなくなります。これにより、オブジェクトの高さが減少し、干渉している可能性があります。
編集this questionとthis questionへの回答にヒントがあるようです。特に W3C 仕様では、 or のどちら
overflow-xかoverflow-yを設定しvisible、もう一方を別の設定にすると、visibleがになるようですauto。変な仕様です。