可视化面板布局适配屏幕-基于 flexible.js + rem 智能大屏适配
VScode 安装cssrem插件 引入flexible.js 在之后的开发都使用rem为单位,安装cssrem插件就是为了快捷将px转为rem 我们的设计稿是1920px,设置最小宽度为1024px,最后,我们可能需要结合一下媒体查询约束屏幕尺寸
VScode 安装cssrem插件
引入flexible.js
确认flexible.js是否引入成功,看html标签是否成功设置上了font-size
( function flexible ( window, document ) {
let docEl = document. documentElement;
let dpr = window. devicePixelRatio || 1 ;
function setBodyFontSize ( ) {
if ( document. body) {
document. body. style. fontSize = 12 * dpr + "px" ;
} else {
document. addEventListener ( "DOMContentLoaded" , setBodyFontSize) ;
}
}
setBodyFontSize ( ) ;
function setRemUnit ( ) {
let rem = docEl. clientWidth / 24 ;
docEl. style. fontSize = rem + "px" ;
}
setRemUnit ( ) ;
window. addEventListener ( "resize" , setRemUnit) ;
window. addEventListener ( "pageshow" , function ( e ) {
if ( e. persisted) {
setRemUnit ( ) ;
}
} ) ;
if ( dpr >= 2 ) {
let fakeBody = document. createElement ( "body" ) ;
let testElement = document. createElement ( "div" ) ;
testElement. style. border = ".5px solid transparent" ;
fakeBody. appendChild ( testElement) ;
docEl. appendChild ( fakeBody) ;
if ( testElement. offsetHeight === 1 ) {
docEl. classList. add ( "hairlines" ) ;
}
docEl. removeChild ( fakeBody) ;
}
} ) ( window, document) ;
在之后的开发都使用rem为单位,安装cssrem插件就是为了快捷将px转为rem
我们的设计稿是1920px,设置最小宽度为1024px,最后,我们可能需要结合一下媒体查询约束屏幕尺寸
@media screen and ( max- width: 1024px ) {
html {
font- size: 42px ! important;
}
}
@media screen and ( min- width: 1920px ) {
html {
font- size: 80px ! important;
}
}