PC端网页rem适配方案

Posted 盐孩儿

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PC端网页rem适配方案相关的知识,希望对你有一定的参考价值。

以1920设计稿为基准

1、使用sass语法 转换px rem ,静态站点推荐使用我之前提到的 vscode插件easy-scss 

      https://www.cnblogs.com/joyZ/p/13342794.html

// PX 转 rem
@function px2Rem($px, $base-font-size: 18px) {
    @if (unitless($px)) {
        //有无单位
        @return ($px / 19.2) * 1rem;
    } @else if (unit($px) == em) {
        @return $px;
    }
    @return ($px / $base-font-size) * 1rem;
}

2、设置媒体查询

@media screen and (max-width: 1920px) {
  html {
    font-size: 19.2px;
  }
}
@media screen and (max-width: 1680px) {
  html {
    font-size: 16.8px;
  }
}
@media screen and (max-width: 1380px) {
  html {
    font-size: 14.4px;
  }
}
@media screen and (max-width: 1300px) {
  html {
    font-size: 12.8px;
  }
}

3、适配代码

   height: px2Rem(70px); -- 调用scss函数将px转换为对应rem
 
补充:
// 设计一个函数,这个函数用于获取屏幕的宽度,动态给html标签设置font-size
(function(win,doc){
    // 获取到html标签
    const docEl = doc.documentElement;
    // 检测一下目前屏幕是横屏还是竖屏
    const resizeEvent = "orientationchange" in window? "orientationchange":"resize";
    // 每个屏幕对应的font-size
    const compute = function(){
        const width = docEl.clientWidth;
        console.log(width);
        if(!width) return;
        if(width > 750){
            docEl.style.fontSize="100px";
        }else{
            docEl.style.fontSize= (width/750)* 100 +"px"
        }
    }
    // 窗口发生变化 重新计算
    win.addEventListener(resizeEvent,compute,false)
    // 页面加载了 重新计算
    doc.addEventListener("DOMContentLoaded",compute,false)
    compute();
})(window,document)

 

以上是关于PC端网页rem适配方案的主要内容,如果未能解决你的问题,请参考以下文章

移动端适配方案:js实现动态改变根元素的字体大小

移动端,PC端是怎么做适配的?

移动端Web页面适配方案(整理版)

移动端适配-px转成rem

vue 在网页打开适配移动页面大小

响应式布局-PC端和移动端同时适配