移动web(二)

her~~llo,我是你们的好朋友Lyle,是名梦想成为计算机大佬的男人!

 

博客是为了记录自我的学习历程,加强记忆方便复习,如有不足之处还望多多包涵!非常欢迎大家的批评指正。

目录

一、移动端特点

1.1 移动端和PC端网页不同点

1.2 屏幕尺寸

1.3 分辨率分类

1.4 视口

1.5 二倍图

二、百分比布局

三、Flex布局

3.1 Flex布局/弹性布局

3.2 主轴对齐方式

3.3 侧轴对齐方式

3.4 主轴方向

3.5 弹性盒子换行

四、移动适配 

4.1 思考题

4.2 长度单位rem

flexible

Less语法

4.2 长度单位vw/vh


一、移动端特点

1.1 移动端和PC端网页不同点

PC端网页和移动端网页的有什么不同?

  • PC屏幕大,网页固定版心
  • 手机屏幕小,网页宽度多数为100%

如何在电脑里面边写代码边调试移动端网页效果?

  • 谷歌模拟器

1.2 屏幕尺寸

指的是屏幕对角线的长度,一般用英寸来度量.

PC分辨率

  • 1920* 1080
  • 1366* 768
  • ……

缩放150%

  • (1920/150%)*(1080/150%)

1.3 分辨率分类

物理分辨率是生产屏幕时就固定的,它是不可被改变的

逻辑分辨率是由软件(驱动)决定的

思考:制作网页参考物理分辨率还是逻辑分辨率?

答:逻辑分辨率

1.4 视口

目标:使用meta标签设置视口宽度,制作适配不同设备宽度的网页

  • 手机屏幕尺寸都不同,网页宽度为100%
  • 网页的宽度和逻辑分辨率尺寸相同。

思考:默认情况下,网页的宽度和逻辑分辨率相同吗?

答:不同,默认网页宽度是980px。

目标:网页宽度和设备宽度(分辨率)相同。

解决办法:添加视口标签。

<meta name="viewport" content="width=device-width, initial-scale=1.0">

视口:显示HTML网页的区域,用来约束HTML尺寸。

  • viewport:视口
  • width=device-width:视口宽度=设备宽度
  • initial-scale=1.0:缩放1倍(不缩放)

1.5 二倍图

图片分辨率, 为了高分辨率下图片不会模糊失真。

在实际开发中,当一个50 ×50像素(CSS像素)的图片直接放到iPhone 6/7/8设备中显示时,图片会被放大,变成原来的两倍(iPhone 6/7/8的设备像素比为2),即100 ×100。为了避免图片放大后模糊,我们可以预先制作一张100 ×100的图片,然后在网页中手动设置这个图片的样式,将图片的宽和高都设为50像素。这样,这张图片就会以它原本的像素(100 ×100)来显示,保证了图片的原有清晰度。

现阶段设计稿参考iPhone6/7/8,设备宽度375px产出设计稿。

二倍图设计稿尺寸:750px。

二、百分比布局

目标:能够使用百分比布局开发网页

百分比布局,也叫流式布局。

效果:宽度自适应,高度固定。

三、Flex布局

目标:能够使用Flex布局模型灵活、快速的开发网页

思考:

①多个盒子横向排列使用什么属性?

答:浮动

②设置盒子间的间距使用什么属性?

答:margin

③需要注意什么问题?

答:浮动的盒子脱标

3.1 Flex布局/弹性布局

  • 是一种浏览器提倡的布局模型
  • 布局网页更简单、灵活
  • 避免浮动脱标的问题

作用:

  • 基于Flex 精确灵活控制块级盒子的布局方式,避免浮动布局中脱离文档流现象发生。
  • Flex布局非常适合结构化布局

设置方式:

  • 父元素添加display: flex,子元素可以自动的挤压或拉伸

组成部分:

  • 弹性容器
  • 弹性盒子
  • 主轴
  • 侧轴/ 交叉轴

3.2 主轴对齐方式

目标:使用justify-content调节元素在主轴的对齐方式

思考:网页中,盒子之间有距离吗?

答:有。

在Flex布局模型中,调节主轴或侧轴的对齐方式来设置盒子之间的间距。

修改主轴对齐方式属性: justify-content

常用属性值:

属性值作用
flex-start默认值, 起点开始依次排列
flex-end终点开始依次排列
center沿主轴居中排列
space-around弹性盒子沿主轴均匀排列, 空白间距均分在弹性盒子两侧
space-between弹性盒子沿主轴均匀排列, 空白间距均分在相邻盒子之间
space-evenly弹性盒子沿主轴均匀排列, 弹性盒子与容器之间间距相等

3.3 侧轴对齐方式

目标:使用align-items调节元素在侧轴的对齐方式

修改侧轴对齐方式属性:

  • align-items(添加到弹性容器)
align-items: stretch|center|flex-start|flex-end|baseline|initial|inherit;
  • align-self:控制某个弹性盒子在侧轴的对齐方式(添加到弹性盒子)
align-self: auto|stretch|center|flex-start|flex-end|baseline|initial|inherit;

每个弹性盒子的 align-self 属性来覆盖这个 align-items 属性。

3.4 主轴方向

目标:使用flex-direction改变元素排列方向

思考:Flex布局模型中,弹性盒子默认沿着哪个方向排列?

答:水平方向。

思考:如何实现内容垂直排列?

主轴默认是水平方向, 侧轴默认是垂直方向

修改主轴方向属性: flex-direction

属性值作用
row行, 水平(默认值)
column列, 垂直
row-reverse行, 从右向左
column-reverse列, 从下向上

3.5 弹性盒子换行

目标:使用flex-wrap实现弹性盒子多行排列效果

思考:默认情况下,多个弹性盒子如何显示?

弹性盒子换行显示: flex-wrap: wrap;

调整行对齐方式:align-content

        取值与justify-content基本相同

四、移动适配 

4.1 思考题

思考:实现网页效果:屏幕宽度不同,网页元素尺寸不同(等比缩放)

px单位或百分比布局可以实现吗?

  • px单位是绝对单位
  • 百分比布局特点宽度自适应,高度固定

适配方案

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

4.2 长度单位rem

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

  • 相对单位
  • rem单位是相对于HTML标签的字号计算结果
  • 1rem = 1HTML字号大小

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

适配原理:

1.根据视口宽度,设置不同的HTML标签字号

2.书写代码,尺寸是rem单位

  • 确定设计稿对应的设备的HTML标签字号Ø查看设计稿宽度→确定参考设备宽度(视口宽度)→确定基准根字号(1/10视口宽度)
  • N* 37.5=68→N=68/37.5
  • rem单位的尺寸=px单位数值/基准根字号

flexible

目标:使用flexiblejs配合rem实现在不同宽度的设备中,网页元素尺寸等比缩放效果

flexible.js是手淘开发出的一个用来适配移动端的js框架。

核心原理就是根据不同的视口宽度给网页中html根节点设置不同的font-size。

Less语法

①目标:使用Less运算写法完成px单位到rem单位的转换

思考:在px单位转换到rem单位过程中,哪项工作是最麻烦的?

答:除法运算。CSS不支持计算写法。

解决方案:可以通过Less实现。

②目标:使用Less语法快速编译生成CSS代码

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

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

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

Easy Less:vscode插件

作用:less文件保存自动生成css文件

注释:

单行注释

        语法://注释内容

        快捷键:ctrl+/l

块注释

        语法:/* 注释内容*/

        快捷键:shift+alt+A

运算:

        加、减、乘直接书写计算表达式

        除法需要添加小括号或.      

 

注意:表达式存在多个单位以第一个单位为准

目标:能够使用Less嵌套写法生成后代选择器

嵌套:

        作用:快速生成后代选择器。

        语法:

 

 

        注意:&不生成后代选择器,表示当前选择器,通常配合伪类或伪元素使用

目标:能够使用Less变量设置属性值变量

网页中,文字文字颜色基本都是统一的,如果网站改版,变换文字颜色,如何修改代码?

方法一:逐一修改属性值(太繁琐)

方法二:把颜色提前存储到一个容器,设置属性值为这个容器名l变量:存储数据,方便使用和修改。

语法:

        定义变量:@变量名:值;

        使用变量:CSS属性:@变量名; 

 

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

思考:

开发网站时,网页如何引入公共样式?

  • CSS:书写link标签
  • Less:导入

导入:@import“文件路径”;

目标:使用Less语法导出CSS文件

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

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

方法二:控制当前Less文件导出路径

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

思考:所有的Less文件都需要导出CSS文件吗?

禁止导出

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

4.2 长度单位vw/vh

目标:能够使用vw单位设置网页元素的尺寸

  • 相对单位
  • 相对视口的尺寸计算结果
  • vw:viewportwidthØ1vw=1/100视口宽度
  • vh:viewportheightØ1vh=1/100视口高度

vw适配原理:

vw单位尺寸:

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

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

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

vh适配原理:

vh单位尺寸

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

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

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

思考:开发中,会不会vw和vh混用呢?

  • 不会。
  • vh是1/100视口高度,全面屏视口高度尺寸大,如果混用可能会导致盒子变形。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员Lyle

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值