2020.02.04 コーディング
pxをvwに変換する4つの方法
目次
pxをvwにする事前情報・計算式
今までの記事で基本的な考え方を書いていなかった事に気づきました。。
まずはそこからご説明します。
たとえば画面幅が750pxであれば以下のようになります。
750px = 100vw
375px = 50vw
75px = 10vw
※これはビューポートを基準とする単位ではどれも同じで、vw以外だとvh(viewport height)、vmin(viewport minimum)、vmax(viewport max)も同じ計算になります。
パーセントと同じようにも感じますが、パーセントだと親要素の数値を基準とするため、画面幅を基準にした方がわかりやすいのでvwを使用すると単位がわかりやすくなります。
そのため、ぱっと出てしまう天才は不要ですが、普通の人は難しいと思うので計算式に当てはめる必要があります。計算式は以下になります。
100 / 基準値 × px = vw
例)基準値が750pxで20pxの場合
100 / 750px × 20px = 2.66666666667vw
基準値は作ったデザインの幅が750pxであればそのまま750、640pxで作れば640とそのままです。
力技でpxをvwにする方法(2017.8.7)
計算式に当てはめて、基準値を「320px、500px、640px、750px、1000px」の5つで表にしてみました。
ご覧いただければわかりますが、とてもわかりにくいです。。
ブラウザからpxをvwにする方法(2018/9/28)
力技の反省を活かし、ブラウザ上で計算出来るものを作成しました。
基準値を選択し、pxを入力後、変換ボタンをクリックすれば計算してくれるので、ちょちょっと調べたいが計算式忘れたという時には便利かと思います。
アナログな感じでpxをvwにしたい!エクセル版
Web界隈の集まりなどでも時々その話をいただくのですが、「もっとたくさんの枠があったら良いのに」とか「コピペがめんどい」などご意見をいただく事もあります。
作業中、端に置いておけるように細長めに作ってみました!
>ダウンロードはこちら(xlsx:12KB)
1.基準値を選択
2.pxの列に数字を入れる
以上。
自動的にpxをvwにしたい!SCSS版
色々なパターンを作ってみましたが、やっぱり自動化が一番楽ではあります。
力技にしろ、ブラウザ版にしろ、エクセルにしろ、「ちょちょっとpxをvwにしたい!」とか、「すでにあるサイトの一部をvwにしたい!」等の時くらいしか使わないと思います。
$viewport: 750; // 基準となるビューポート
@function pxtovw($num, $width: $viewport) {
@return (1vw * $num / $width * 100);
}
$viewportのところに基準値を入力します。
上記では750にしました。
その下はpxをvwに変換する記述ですが、おまじないだと思っていただければと思います。
font-size: pxtovw(16);
margin-bottom: pxtovw(10);
}
と書いてコンパイルすると
font-size: 2.1333333333vw;
margin-bottom: 1.3333333333vw; }
となります!簡単です!
pxtovw(ピクセル数)と書けば、自動的にvwに変換してくれます。