前端自学笔记6:移动适配

1、移动适配意义

对不同设备的视口宽度,可以很好地调整网页元素的宽高。

2、移动适配解决方案

①rem:目前多数企业在用的解决方案
②vw/vh:未来的解决方案

3、解决方案一:rem
  • 定义
    rem实际是一个相对单位,使网页元素等比缩放。相对HTML标签的字号计算结果,1rem=1HTML字号大小。
  • 例如:
    设置html字号大小为20px,则 1rem = 20px。
    使用媒体查询检测视口宽度,设置不同的css样式
@media (媒体特性) {
	选择器 {
		css属性
	}
}
#例如:(表示视口宽度为375px时,设置html字号为40px)
@media (width:375px) {
    html {
        font-size: 40px;
    }
}
  • 可以设置多个@media
    这里表示如果视口宽度375,则设置html字号为40px;如果视口宽度为320px,则设置html字号为30px。
    在这里插入图片描述
  • 一般情况下,rem布局方案中,将网页10等分,html字号为视口宽度的1/10
    技术支持包括:媒体查询、flexible.js
  • flexible.js配合rem实现在不宽度设备上中,尺寸的等比例缩放
    原理是根据不同视口宽度给网页中html根节点设置不同的font-size。
    代码:
#在body的最低端引入flexible.js
<script src="../js/flexible.js"></script>
4、Less语法

less:是一个css预处理器,能将css写法变得灵活的工具。
比如可以自动计算除法:
在这里插入图片描述
实现步骤
第一步:
vscode扩展包下载:easy less
在这里插入图片描述
第二步:
创建.less文件,并且写入想要的样式
例如:

.father {
    color: red;
    width: (68 / 37.5rem);   #这里可以直接输入想要相除的数
    .son {
        background-color: pink;
    }
}

第三步:
保存.less文件,vscode会自动在less文件统计目录下生成.css文件
生成的css文件内容:

.father {
  color: red;
  width: 1.81333333rem;   #这里是自动计算的除法结果
}
.father .son {
  background-color: pink;
}
注释
  • 单行注释
    语法://注释内容
    快捷键:ctrl + /
  • 块注释
    语法:/块注释内容/
    快捷键: shift + alt + A
加减乘除运算

加 + 减 - 乘 * 除 / (使用除法需要加小括号,或者在 / 前加小数点)
使用less自动生成css文件的效果如下:
ps:在less中使用小数点会报错,但是可以正常转化为css文件。
在这里插入图片描述

less嵌套语法生成后代选择器

语法:

.父集选择器 {
    //父集样式
    .子集选择器 {
        //子集样式
    }
}

例如:
在这里插入图片描述
另外:使用 &,不会生成后代选择器,表示当前选择器。
在这里插入图片描述

使用less变量设置属性值

变量:将属性存储到一个容器,设置属性值为这个容器
语法:

#定义变量
@变量名:值;
#使用变量
css属性:@变量名;
使用less导入写法引用其他less文件

语法:(less文件开头第一行)

@import ‘文件路径’;

如果导入的是less文件,可以省略后缀名

less语法导出css文件

控制导出的css文件位置两个方法:

  • ①配置easyless插件,实现所有less有相同的导出路径
    设置方法,在vscode里搜索Easy LESS,编辑setting.json
    在这里插入图片描述
    添加代码:(第二个双引号表示导出的目标路径)
    在这里插入图片描述
  • ②使用代码单独设置导出路径:(less文件第一行添加如下代码,./abc/ 代表想要导出的路径。还可以接具体文件名.css;也可以多个导出路径)
    在这里插入图片描述
less文件禁止导出

在less文件第一行添加:
在这里插入图片描述

5、解决方案二:vw/vh

本身是一个相对的长度单位,是相对视口的尺寸。
vw:viewport width;1vw = 1/100视口宽度
vh: viewport height;1vh = 1/100视口高度

/*设置样式时使用vw或vh,一般情况下不混用*/
.box {
    width: 50vw;
    height: 30vw;
    background-color: pink;
}
/*或者*/
.box {
    width: 50vh;
    height: 30vh;
    background-color: pink;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值