可视化面板布局适配屏幕-基于 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;}
}