モバイルウェブの画面適応(rem)
前文
最近、以前フロントエンドを勉強したときのメモを整理したところ、モバイルWeb側の画面適応(rem)をよく理解せず、ただ使っていただけだったことに気づきました。
次に、モバイルウェブの画面適応(rem)について、私の考えを書いておきます。
remの紹介
remはルート要素(<html>)のfont-sizeの大きさを表します。つまり、ルート要素のfont-sizeが14pxであれば、1rem = 14px
モバイルウェブ用レム
適応効果
同じ要素でも画面サイズが異なると同じ大きさに見えないが、画面幅に占める割合は同じである。
コード
// In the head tag of the html file
<script type="text/javascript">
(function(){
var html = document.documentElement;
// Get the screen width (px)
var hWidth = html.getBoundingClientRect().width;
// Set the font-size of the html tag to hWidth/15
html.style.fontSize = hWidth/15 + 'px';
})()
</script>
// In less
/* Define the variable @r:750/15 */
@r:50rem;
div {
width: 100/@r;
height: 200/@r;
}
javascriptコード
まず、画面サイズの15分の1(px)をhtmlタグのfont-size属性にコピーします。このとき、画面サイズ(px)の1/15pxは、どのサイズの画面でも1remに相当する。つまり、どの画面サイズでも同じremの値を設定すれば、その要素はどの画面サイズでも画面幅の同じ割合を占め、同じ割合を占めればどの画面サイズにもフィットすることになります。
少ないコード
あとは、デザイン内の要素のpx単位をrem単位に変換するだけです。
つまり、この時点では、デザインも一定の寸法を持った携帯電話の画面と考えることができるのです。
私の例では、デザインの幅は750pxです。
つまり、750/15=50pxとなり、デザインの大きさのスマホ画面では1rem=50pxということになります。
そして、lessのコードの中で、@rという変数を定義します。
divの幅は100pxと計測され、デザインの大きさの画面では1rem=50pxなので、divのremの値は:100/50 rem、すなわち100/@rとなります。
divの高さは200pxで、デザインの大きさの画面では1rem = 50pxなので、divのremの値は:200/50 rem、または200/@rとなります。
以上が今回の記事の全てですが、皆様の勉強のお役に立てれば幸いです。また、スクリプトハウスを応援していただければ幸いです。
関連
-
html-webpack-plugin' を使用して html ページをインメモリで生成するプラグインです。
-
HTMLのテーブルボーダーを設定する際のヒント
-
CSSでTDのINPUTの幅を設定する
-
Adobe Bracketsの簡単な使い方のグラフィックチュートリアル
-
Htmlの長いテキストは、マーカーの幅を超えて自動的にインターセプトコードを達成するために
-
HTML 9ボックスレイアウトの実装方法
-
IE6のフォントが定義できない 13pxは無効です。IE6では自動的に大きなフォントが表示されます。
-
Webアプリケーションの開発を短縮するための時間節約テクニックトップ10(グラフィックチュートリアル)
-
画像をラベルとして使用する場合、IEでは属性が機能しない。
-
セマンティックHTMLの構造を理解する方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン