冗長なユニバーサル・セレクターを削除する機能を追加して、CSSWring v5.1.0をリリースした。かなり前にやろうと考えていたもののすっかり忘れていた。v5.1.0には少し前に書いた単位の変換機能も含まれている。
冗長なユニバーサル・セレクターとは、省略可能な*
のことだ。
*#foo,
*.bar,
*:link,
*[baz] {
color: red;
}
このような*
は、あってもなくてもセレクターの解釈へ影響を与えることはないため、削除できる。
.foo * .bar {
color: red;
}
実際にはこのような*
も削除可能だ。ただ実装がかなり面倒くさい。例えば以下のようなセレクターでは削除することはできない。
.foo > * + .bar {
color: red;
}
前後がシンプル・セレクターでなければならないというわけだ。シンプル・セレクターかどうかを判定する機能をうまく実装出来たら、削除できるようにしたい。