1

w3schools によると、の構文はoutlineis:
outline: <color> <style> <width>;であり、3 つのいずれかが欠落している可能性があります。

inheritは 3 のいずれかの有効な値であるか、単一outline: inheritは 3 つすべてを継承する必要があることを意味します。

CSS ミニファイヤのプロパティ オプティマイザに取り組んでいるため、これを尋ねています。上記のリンクによると、
outline: inherit none 3pxは と同等outline: inherit 3pxであり、 と
outline: invert inherit 3pxも同等ですoutline: inherit 3px
、結果があいまいすぎるようです。

問題は、ブラウザがどのように解釈するoutline: inherit 0pxかです。inherit彼らは色やスタイルに割り当てますか?

4

2 に答える 2

7

無視されます。これは現在のブラウザーの慣行であり、CSS で意図されている原則です。 のような簡略表記outlineでは、キーワードinheritを値として使用できます (すべてのサブプロパティを継承します) が、他の値と組み合わせて使用​​することはできません。その理由は明らかです。そうしないと、値が明確に解釈されないからです。valueinherit 0では、 value は の値にのみ0指定できますが、またはの値にすることもできます。outline-widthinheritoutline-styleoutline-color

この原則は、CSS 2.1 仕様のC.3.1の付録に記載されています。理論的には、付録 C は変更の有益な説明であり、規範的ではありません。ここでは、実際の変更を反映していません。つまり、これはだめでした: 意図は記述されていましたが、規範的には CSS 2.1 にはこの原則がoutline: inherit 0なく、有効と見なされます (ただし、W3C CSS Validator はそれを拒否しています)。参照。このフォントは: 省略形プロパティの構文は有効ですか? (仕様を読んだところ、はいと言われていますが、インストールされているブラウザーの半分は同意していません。)font (省略形に関する同じ問題を扱っています)。

すべてのoutlineプロパティを継承し、幅をゼロに設定したい場合 (これは少し奇妙です)、2 つの宣言が必要です。

outline: inherit;
outline-width: 0;
于 2014-02-16T12:07:51.637 に答える