rem, vh, vw, vmin, vmax
rem
em は現在の font-size を定義します。 一例として,body タグにem値を用いてフォントサイズを指定すると,すべての子供の要素はbodyのフォントサイズに影響されます。
<body>
<div class="test">Test</div>
</body>
body {
font-size: 14px;
}
div {
font-size: 1.2em; // calculated at 14px * 1.2, or 16.8px
}
ここ、divにfont-sizeを1.2emに指定しました。 この例題では14pxを基準に1.2倍のフォントサイズで表現になります。 結果的に16.8pxの大きさになります。
ところで,ここにemと定義したフォントサイズをそれぞれの子息に宣言すると,どんなことが起こるでしょうか。 同じCSSを適用した同一のコードを追加してみました。 それぞれのdivは各親のフォントサイズを受け継いでますます大きくなります。
<body>
<div>
Test <!-- 14 * 1.2 = 16.8px -->
<div>
Test <!-- 16.8 * 1.2 = 20.16px -->
<div>
Test <!-- 20.16 * 1.2 = 24.192px -->
</div>
</div>
</div>
</body>
これは,ある場合は望ましいことだが,ほとんどの場合,単純に単一のサイズで表現することもあります。 この場合すぐrem単位を使えばいいです。 remの"r"は"root(最上位)"を意味します。 最上位タグ(要素)に指定したものを基準とし,通常最上位タグはhtmlタグです。
html {
font-size: 14px;
}
div {
font-size: 1.2rem;
}
以前のあちこちで作った複雑な段階の税divはすべて16.8pxのフォントサイズで表現されました。
グリッドシステムにいいです。
remはフォントでのみ使用されません。 たとえば,グリッドシステムやrem を用いた基本フォントサイズベースで作ったUI スタイル,そしてem を用いて特定の位置に特別なサイズを指定することもできます。 より正確なフォントサイズやサイズ調整を可能にします。
.container {
width: 70rem; // 70 * 14px = 980px
}
vhとvw
反応型ウェブデザイン技術はパーセント値に相当依存しています。 しかしCSSのパーセント値がすべての問題を解決できる良い方法ではありません。 CSSの幅の値は最も近い親要素に相対的な影響を受けます。 幅と高値を親要素の幅値のビューポートに合わせて使うことができます。 vhとvw単位がそのような意図に合う単位です。
vh要素は高さ値の100分の1の単位です。 例えば、ブラウザの高さ値が900pxの時1vhは9pxという意味になります。 彼と同様にビューポートの幅の価格が750pxの裏1vwは7.5pxになります。
この規則には限りない使用方法があります。 例えば,最大の高値や彼の類似の高さのスライドを製作する際に,とても簡単なCSS だけ入力すればよいです。
.slide {
height: 100vh;
}
スクリーンの幅値にぎっしり詰まるヘッドラインを作る為にvwでフォントサイズを指定すると容易に達成できます。 あのサイズはブラウザの幅に合わせて変わります。
vminとvmax
vhとvwが常にビューポートの幅値と高値に相対的な影響を受ける場合,vminとvmaxは,幅の値と高さによって最大,最小値を指定することができます。 例えばブラウザの大きさが1100pxの幅、そして700px高さの時1vminは7pxになって1vmaxは11pxになります。 幅の値段がさらに800pxになって高さ値が1080pxになるとvminは8pxになってvmaxは10.8pxになります。
いつもスクリーンに見える要素を作るとしたら 高さ値と幅の値をvminを使用して100に指定します。 例えば,タッチ画面の両辺に並ぶ正方形の要素を作る際は,このように定義すればいいです。
.box {
height: 100vmin;
width: 100vmin;
}
ビューポート画面に見えなければならない(すべての君の変異スクリーンにみっしり詰まっている)場合には同じ値をvmaxに適用すればいいです。
.box {
height: 100vmax;
width: 100vmax;
}