移动适配rem/vw

135 阅读3分钟

移动适配

rem : 目前多数在用的解决方案

rem是相对单位

rem单位是相对于HTML标签的字号计算结果

1rem = 1HTML字号大小

思考:

手机屏幕大小不同,分辨率不同, 如何设置不同的HTML标签字号?

· 媒体查询能够检测视口的宽度,然后编写差异化的 CSS 样式

@media (媒体特性){
    选择器{
        css属性
    }
}

@media (width:320px){
    html{
        font-size:32px
    }
}

目前rem布局方案中,将网页等分成10份, HTML标签的字号为视口宽度的 1/10

Snipaste_2022-03-08_19-40-35.png rem单位尺寸

  1. 根据视口宽度,设置不同的HTML标签字号
  1. 书写代码,尺寸是rem单位

3.确定设计稿对应的设备的HTML标签字号

查看设计稿宽度 → 确定参考设备宽度(视口宽度) → 确定基准根字号(1/10视口宽度)

  1. rem单位的尺寸

    N * 37.5 = 68 → N = 68 / 37.5

    rem单位的尺寸 = px单位数值 / 基准根字号

flexible

flexible js配合rem实现在不同宽度的设备中,网页元素可以实现尺寸等比缩放效果

 <script src="./js/flexble.js"></script>

vw / vh:未来的解决方案

相对单位

相对视口的尺寸计算结果

vw:viewport width 1vw = 1/100视口宽度

vw单位尺寸

  1. 确定设计稿对应的vw尺寸 (1/100视口宽度)

查看设计稿宽度 → 确定参考设备宽度 (视口宽度) → 确定vw尺寸 (1/100 视口宽度)

  1. vw单位的尺寸 = px单位数值 / ( 1/100 视口宽度 )

vh:viewport height 1vh = 1/100视口高度

vh单位尺寸

  1. 确定设计稿对应的vh尺寸 (1/100视口高度)

查看设计稿宽度 → 确定参考设备高度 (视口高度) → 确定vh尺寸 (1/100 视口高度)

  1. vh单位的尺寸 = px单位数值 / ( 1/100 视口高度 )

Less

因为CSS不支持计算写法,可以通过Less实现。

1.使用Less语法可以快速编译生成CSS代码

2.Less是一个CSS预处理器, Less文件后缀是 .less

3.扩充了 CSS 语言, 使 CSS 具备一定的逻辑性、计算能力。

注意:浏览器不识别Less代码,目前阶段,网页要引入对应的CSS文件。

less存在多个单位以第一个单位为准;

.box{
    width:100+50px;  //加法运算
    width:100-50px;   //减法运算
    width:100*4px;  //乘法运算
    width:100./4px;  //除法运算
}

快速生成后代选择器。

.父级选择器{
    .子级选择器{
        
    }
    &::after{  
                  //伪类前面加&
    }
    &:hover{
    }
}

可以把颜色提前存储到一个容器,设置属性值为这个容器名

@fontcolor:pink
    
    .box{
        color:@fontcolor
}

能够使用Less导入写法引用其他Less文件

@import'base.css';

使用Less语法导出CSS文件

方法一:

配置EasyLess插件, 实现所有Less有相同的导出路径

配置插件: 设置 → 搜索EasyLess → 在setting.json中编辑 → 添加代码(注意,必须是双引号)

Snipaste_2022-03-08_20-00-32.png 方法二:

控制当前Less文件导出路径

Less文件第一行添加如下代码, 注意文件夹名称后面添加 /

//out: ./css/

禁止导出

在less文件第一行添加: // out: false

// out: false