v6.15とかでちょっとem
単位を使うようにした話を書いた。そこで書いたのは「描画領域に収まるレイアウト」ではなくて「文章の収まりを意識したレイアウト」にしたかったとかそういう話だった。id:vantとかu:studiomohawkなどがブックマークしてたThe EMs have it: Proportional Media Queries FTW!ではもうひとつのem
単位を使うメリット、Media Queriesでem
単位を使うとユーザーのズーム(スケーリング)に対応できる点を解説していた。
em
単位をMedia Queriesで使うとpx
単位と違いユーザーのズームが考慮されて計算される(ただしウィンドウサイズを変更した時などとは違い即座に反映されるわけではないのでリロードが必要)。1em
が16px
な環境で200%
にズームしていると1em
が32px
相当になり、それを基準にMedia Queriesが解釈されるということ。上記エントリで例として挙げられているようにナビゲーションのレイアウトをMedia Queriesで調節している場合、em
単位をちゃんと使えばユーザーのズームが考慮されるため結果としてだいたい意図した通りに表示されるようになる。
これはem
単位の方が優れているという話ではなくて、幅広いデバイスとユーザー環境を考慮する場面ではだいたい良きにはからってくれるem
単位が向いているという話。
.test {
border-radius: 0.0625em;
line-height: 1.75em;
}
1px
の角丸を作ろうとしてこう書くのは頭悪いし、line-height
プロパティーでは単位なしが良い。こういう風に「今まではバカみたいにpx
単位だけ使ってれば平和だったけどそうじゃなくなったから……」と、単に単位を全て変更するのでは意味がない。もっとそれぞれの単位についてちゃんと知って、その時々に応じて適切な単位を取捨選択することによりFuture FriendlyなWebサイトを作ろう! ということ。
HTML5 BoilerplateとかもGitHub上の最新開発版ではem
単位でMedia Queries書きましょうみたいな感じになってたりするので、サクサクと移行が進みそうな気配はある。本当はem
単位じゃなくてrem
単位だよね。あとcalc()
……。