
Web笔记Day03
一、移动适配
谷歌模拟器
谷歌浏览器自带的模拟器,可以模拟其他设备,使查看不同端的css效果更方便。(edge浏览器也有,就是“检查”右边的图标)
屏幕分辨率
- 屏幕分辨率:纵横向上的像素点数,单位是px。
- pc分辨率
1920*1080
1366*768
…… - 缩放150%
1920/150%
1080/150% - 总结:
硬件分辨率——物理分辨率(出厂设置)
缩放调节的分辨率——逻辑分辨率(软件/驱动设置)
PS:网页的PC/移动端均参考逻辑分辨率。
视口
手机屏幕尺寸不同,网页宽度均为100%。
网页的宽度和逻辑分辨率尺寸相同。
视口:
显示HTML网页的区域,用来约束HTML尺寸(vscode自动生成)1
2
3
4
5
6
7
8
9<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<!-视口标签:规定HTML的尺寸,让HTML的宽度=逻辑分辨率的宽度/设备的宽度-->
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>width=device-width: 视口宽度=设备宽度
initial-scale=1.0 缩放1倍(不缩放)
二倍图
- 概念:设计稿里面每个元素的尺寸倍数。
- 作用:防止图片在高分辨率屏幕下模糊失真。
- 现阶段设计稿参考IPhone6/7/8,设备宽度375px产出设计稿。
- 二倍图设计稿尺寸:750px。
使用设计稿:点击设计稿(显示宽750px)–>设计图2x / 像素密度@2x。
适配方案
- 宽度适配:宽度自适应。
▢ 百分比布局
▢ Flex布局 - 等比适配:宽高等比缩放。
▢ rem
▢ vw
二、rem
概念
- rem单位,是相对单位。
- rem单位是相对于HTML标签字号计算结果。
- 1rem = 1HTML字号大小。
代码
1 | <style> |
思考
手机屏幕大小不同,分辨率不同,如何设置不同的HTML标签字号?
答:媒体查询:
媒体查询能够检测视口的宽度,然后编写差异化的CSS样式。
当某个条件成立,执行对应的CSS样式1
2
3
4
5@media (媒体特性){
选择器{
CSS属性
}
}1
2
3
4
5
6
7
8<style>
/* 视口宽度是375,网页背景色是绿色 */
@media (width:375px){
body{
background-color: green;
}
}
</style>PS: 当屏幕缩放比125% –> html宽375.2px @media不执行
设备宽度不同,HTML标签字号设置多少合适?
答:设备宽度大,元素尺寸大。设备宽度小,元素尺寸小。
目前rem布局方案中,将网页等待分成10份,HTML标签的字号为视口宽度的1/10。1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28<style>/*该方法繁琐难用*/
*{
margin: 0;
padding: 0;
}
/* 1. 使用媒体查询,给不同视口的屏幕设置不同的HTML字号 */
@media (width:320px){
html{
font-size: 32px;
}
}
@media (width:375px){
html{
font-size: 37.5px;
}
}
@media (width:414px){
html{
font-size: 41.4px;
}
}
/* 2. 使用rem单位书写尺寸 */
.box{
width: 5rem;
height: 3rem;
background-color: pink;
}
</style>rem-flexible.js
flexible.js是手机淘宝开发出来的一个用于适配移动端的js库。
核心原理就是根据不同的视口宽度给网页中html根节点设置不同的font-size。1
2
3
4<body>
......
<script src="./js/flexible.js"></script>
</body>工作中,书写代码的尺寸要参照设计稿尺寸,设计稿中是px还是rem?
——rem如何确定rem的数值?
目标:计算68px是多少个rem(设计稿适配375px视口)
N*37.5=68 N=68/37.5
rem单位尺寸:
▢ 确认基准根字号
► 查看设计稿宽度→确定参考设备宽度(视口宽度)→确定基准跟字号(1/10视口宽度)
▢ rem单位尺寸
► rem单位的尺寸=px单位数值 / 基准根字号1
2
3
4
5
6
7
8<style>
/* 68*29 */
div{
width: 1.813rem;
height: 0.773rem;
background-color: pink;
}
</style>
三、less
简介
- less是一个CSS预处理器,Less文件后缀是.less。扩充了CSS语言,使CSS具备一定的逻辑性、计算能力。
- 浏览器不识别Less代码,目前阶段,网页要引入对应的CSS文件。
- VS Code插件:Easy LESS,保存less文件后==自动生成==对应的CSS文件。
1 | .father{ |
1 | .father { |
注释
- 单行注释(CSS不支持,生成CSS后不显示)
► 语法://注释内容
► 快捷键:ctrl+/ - 块注释
► 语法:/*注释内容*/
► 快捷键:Shift+Alt+A
运算
加减乘直接书写计算表达式。
除法需要添加小括号或. (推荐使用小括号)
1 | .box{ |
1 | .box { |
嵌套
作用:快速生成后代选择器
1 | .父级选择器{ |
1 | .father{ |
1 | .father { |
变量
概念:容器,存储数据。
作用:存储数据,方便使用和修改。
语法:
► 定义变量: @变量名 : 数据;
► 使用变量: CSS属性 : @变量名;
1 | //1. 定义变量 |
1 | div { |
导入
作用:导入less公共样式文件。
语法:导入:@import “文件路径”;
提示:如果是less文件可以省略后缀。
防止不同less文件生成多个CSS文件,将其他less导入到index.less中
1 | @import "./less变量.less"; |
1 | /*@myColor: pink;*/ |
导出
写法:在less文件的第一行添加 // out: 存储URL
提示:文件夹名称后面添加/
1 | // out: ./css/ |
禁止导出
例如在前文需要导入到index.less的less文件就不需要导出自己(生成CSS)
写法:在less文件第一行添加://out:false
1 | // out:false |
四、VW
概念
- 此为相对单位
- 相对视口尺寸计算结果
vw: ==v==iewport ==w==idth
▢ 1vw=1%视口宽度
vh: ==v==iewport ==h==eight
▢ 1vh=1%视口高度
vw布局
- 确定设计稿对应的vw尺寸(1/100视口宽度)
► 查看设计稿宽度 –> 确定参考设备宽度(视口宽度) –> 确定vw尺寸(1/100视口宽度) - vw单位尺寸=想要的尺寸px / (1/100视口宽度)
vh单位问题
思考:开发中,能不能vw和vh混用呢?
► 不能
► vh是1/100视口高度,全面屏视口高度尺寸大,如果混用可能会导致盒子变形。