フレックスレイアウトemを使用してrem適応移動端ページ
4123 ワード
フレックスレイアウトemとremを使用してエンドページを適応
Emとremを比較するとemの悪いところはemが親を基準に単位換算され、多くのブラウザのhtmlのfont-sizeのデフォルト値は16 pxなので、bodyベースのすべてのサブセットは16 pxを基準にemの換算が行われます.面倒なことに、子要素の親が1つ以上の場合、em単位は前の親のfont-size属性を継承します.サブセットの単位換算は複雑になります.
remはルート要素に作用するhtmlなので、ページ内のすべての要素はhtmlのfont-sizeに照らして換算され、親の影響を受けません.
プロジェクトプロセス図では、設計原稿を100%復元するため、設計原稿の寸法は、一般に750、viewportにより表示領域を750とする.
ここでは、基準値を100 pxとし、750/100=7.5(750 px=7.5 rem)に設定します.
jsを使用して画面幅を動的に取得し、基準値を再計算します.
Emとremを比較するとemの悪いところはemが親を基準に単位換算され、多くのブラウザのhtmlのfont-sizeのデフォルト値は16 pxなので、bodyベースのすべてのサブセットは16 pxを基準にemの換算が行われます.面倒なことに、子要素の親が1つ以上の場合、em単位は前の親のfont-size属性を継承します.サブセットの単位換算は複雑になります.
remはルート要素に作用するhtmlなので、ページ内のすべての要素はhtmlのfont-sizeに照らして換算され、親の影響を受けません.
プロジェクトプロセス図では、設計原稿を100%復元するため、設計原稿の寸法は、一般に750、viewportにより表示領域を750とする.
<meta name="viewport" content="width=750,target-densitydpi=device-dpi,maximum-scale=1.0, user-scalable=no">
ここでは、基準値を100 pxとし、750/100=7.5(750 px=7.5 rem)に設定します.
html,body{
width: 100%;
height: 100%;
font-size: 100px;
}
jsを使用して画面幅を動的に取得し、基準値を再計算します.
let html = document.getElementsByTagName('html')[0];
resize()
window.addEventListener('resize',function () {
//
resize()
})
function resize(){
let width = document.body.offsetWidth
console.log(width)
width > 750 ? 750 : width;
width < 320 ? 320 : width;
html.style.fontSize = width/7.5 + 'px'
}