2016-08-23 11 views
3

セレクタでは、スペースは子孫を示すことができます。しかし、私はスペースも無視することができます参照してください。CSSセレクタの空白

  • スペースが,周りを使用して、コンテキスト文字(のような+>)することができる:私のテストから

    は、ここで私はそれが意味を考えるものです。

  • スペースはないは、擬似クラスと要素文字(:::)ならびに属性セレクタ([…])の周りに使用することができます。
  • スペースはではありません。は、クラスとid文字(.#)と一緒に使用してください。
  • 「文字列」内のスペースは重要です。
  • 他のスペースはすべて無視されます。これには、属性セレクタ内のパディングが含まれます。

質問は(a)正式に正しいですか? (b)これはどこでカバーされていますか?

+0

'、'のまわりのスペースは、技術的には「CSSセレクタの空白」ではありません。 「セレクタ」という用語は個々のセレクタを参照するために使用され、CSSルールの左側のコンマで区切られたセレクタのリストは「セレクタリスト」と呼ばれます。 –

+0

@torazaburoそのコメントをありがとう。用語は私が他人に教えるときに重要です。 – Manngo

答えて

3

あなたの結論はすべて正しいです。アトリビュートセレクタの空白には微妙な違いがありますが、答えはthis questionです。

空白が表示される場所と表示されない場所の正確な規則は、grammarに記載されています。文法の目的のために、あなたが参照する文脈上の文字(+>など)は、公式にコンビネータとして知られています。 2つの単純なセレクタを区切る連続した空白文字は、いずれも子孫のコンビネータと見なされます(実際には1つです)。擬似要素、擬似クラス、属性セレクタ、クラスセレクタ、IDセレクタの区切り文字の周囲で空白が「許可」されない理由は、それが意味を持ち、その存在がセレクタの意味を変えるからです。

+0

情報と、文法や正しい用語へのリンクをありがとう。私はいつもコンビネータとしてのスペースの使用は残念でしたが、スペースの正確な使用をより複雑に記述するだけでなく、セパレータではないすべてのスペースが無視されると言える他の言語と完全に一致するわけではありません。 – Manngo

+0

@Manngo:確かに。 [ワーキンググループは同意する](https://wiki.csswg.org/ideas/mistakes) – BoltClock