css3で追加されたレムは今大人気のユニットです。 MDN の説明を見てください:
この単位は、ルート要素の
font-size
大小(例如<html>
要素のフォント サイズを表します)。
このユニットを使用して、ページ全体に適応するようにページ サイズに応じて HTML のフォント サイズを変更するだけで、完璧なスケーラブルなレイアウトを作成できます。そこで問題は、HTML のフォント サイズをどのように適応させるかということです。
メディアの使用方法についてはここでは詳しく説明しません。ページアダプテーションの目的を達成するためにメディアクエリを通じてHTMLのフォントサイズが変更されることを簡単に説明します。
htmlは次のとおりです:
<article class="container"> <ol> <li>rem是相对于root元素(html)字体大小的一个单位。 eg:html默认font-size为16px 则1rem = 16px</li> <li>若元素以rem为单位去设置字体、宽高、边距等。则修改html字体大小就能达到所有元素一起等比例修改的效果</li> <li>所以要实现html字体在不同页面大小下自适应</li> </ol> </article>
cssは次のとおりです:
//媒体查询控制html字体大小 @media (max-width:767px) { html{ font-size: 14px; } } @media (min-width:768px) { html{ font-size: 16px; } } @media (min-width:992px) { html{ font-size: 20px; } } //页面元素的简单样式 .container{ padding: 1rem; } li{ font-size: 1rem; }
メディアクエリを通じて、HTMLのフォントサイズは、異なるサイズ範囲のページで異なるように設定されます。ページ幅 700px の場合、HTML のフォント サイズは 14px、1rem = 14px、li 要素のフォント サイズは 14px、パッケージの内側の余白も 14px になります。ページ幅をフォント サイズの 800px に変更します。 HTML の 16px なら、1rem = 16px、li 要素のフォント サイズは 16px になり、パッケージの内側のマージンも 16px になります
このように、メディア クエリが細かく分割されるほど、適応性はより強力になりますが、完全な適応を達成することはできず、それは間隔ベースのみです。
vw
cssは以下の通りです:
html{ font-size: calc(16/768*100vw); //以768时16px为标准进行缩放 }
JS調整
(function(){ var doc = document.documentElement, resizeEvt = 'orientationchange' in window ? 'orientationchange' : 'resize'; function changeFontSize(){ var clietWidth = doc.offsetWidth, scale = clietWidth/768; //以768为标准 doc.style.fontSize = scale * 16 + 'px'; } if (!doc.addEventListener) return; window.addEventListener(resizeEvt,changeFontSize) //窗口大小变化或者手机横屏 document.addEventListener('DOMContentLoaded',changeFontSize) //加载页面触发 })()
2. ビューポート幅の変更に基づいてHTML
のフォントサイズを標準に設定する以上がrem絶対適応解解析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。