CSSハックが使われていたプロパティーが正規化されてそのまま残ってしまうバグがあったのを修正し、CSSWringのv4.1.1をリリースした。これで正しいブラウザーが解釈するようにCSSハックが削除されるようになる。残したい場合は明示的にオプションで指定する必要があるのはこれまでと変わらない。
この修正をしていて気づいたが、PostCSSのパーサーはプロパティー名の前にあるごく一部の記号に限って特別視するようだ。例えば以下のようなCSSを食わせてみると良くわかる。
.foo {
_color: red;
*color: red;
<color: blue;
}
この場合、プロパティー名の前にある(おそらくCSSハック由来であろう)_
や*
は特別視されてraws.before
へ取り込まれる。対して同じくプロパティー名の前にある<
はprop
にそのままセットされる(知らなくても良いがこれもCSSハックのひとつだ)。両方に対応するためにはraws.before
とprop
を両方処理しなくてはならない。
raws.before
に空白文字以外が取り込まれるという_
と*
だけに対応する場合に限って使いやすい挙動が良くないようだ。しかし現実ではそれらしか使われることはまずないであろうし、この挙動は妥当なところだと考えられる。とはいうもののそういったCSSハックはもう少しで消えていくわけでもあり、それを考えると……。難しいところだ。