ルート要素の文字サイズを基準にする長さの単位rem
にOperaが11.6で対応した。これで5大ブラウザの最新安定バージョン全てで使えるようになったことになる。主に見出しのマージンの指定などで威力を発揮するんじゃないかと思うし、em
よりもグリッドシステムに向いてそうな気配がある。ただrem
単位をサポートしていないブラウザではガン無視されるので、書き方には工夫が必要になる。
一番使いそうなmargin
プロパティーでの利用を考えてみる。まずまとめて指定するケース。
h1 {
margin: 3rem 0 0 0;
font-size: 250%;
}
これだとmargin
プロパティーで指定した値全てが無視されてしまう。非対応ブラウザでのフォールバックを考えると先にem
等で書いておいて、rem
で上書きする必要がありそう。
h1 {
margin: 1.2em 0 0 0; /* 1.2 = 3 / 2.5 */
margin-top: 3rem;
font-size: 250%;
}
単なる計算なのでSassがあるなら$ratio
とかいう変数を用意して書くとメンテナンスしやすそう。
h1 {
$ratio: 2.5;
margin: (3em / $ratio) 0 0 0;
margin-top: 3rem;
font-size: percentage($ratio);
}
rem
使う意味ない……。
フォールバックを考えない、つまりIE8以下を無視する場合では便利で見通しの良いCSSを書けるようになることは確かなんだけど、rgba()
などとは違って所詮は計算でどうにかなる程度のものでしかないことを考えると……。ブラウザーのデフォルト・スタイルシートですら使われてないし、まだちょっと使用には踏み切れない感じかなぁ。
ということ(?)でvim-css3-syntaxを更新して、rem
を始めとした新単位等に対応したりしました。これでcss3-values-20110906には追いついたと思う。正直忘れてた。cycle()
とかなにこれカッコイイ。この更新でcss3-functions.vimからcss3-values.vimにファイル名を変えたので、HTMLやSassにシンタックス定義を追加している人はそちらも合わせて更新する必要がある。空で残しておこうかと思ったけどそれもアレなので消した。
コミット・メッセージにつづりミスを発見するのはなぜいつもpush
した後なのだろう……。