移动端常见实现方式

(⼀)、移动端的技术选型

1、单独制作移动端⻚⾯

1>流式布局

就是百分⽐布局,也称为⾮固定像素布局

通过盒⼦的宽度设置成百分⽐来根据屏幕的宽度来进⾏伸缩,不受固定像素的限制,内容向两侧填

充,主要是设置宽度

⼀般配合以下属性使⽤,免得盒⼦⾥⾯的元素,被挤下来

max-width 最⼤宽度(max-height最⼤⾼度)

min-width 最⼩宽度(min-height 最⼩⾼度)

2>、flex弹性布局

3>、rem+媒体查询布局

1)、rem单位:相对单位,相对于html根元素的字体⼤⼩,通过更改html⽂字的⼤⼩,改变⻚⾯的

⼤⼩

(2)、媒体查询(meidia Query):

作⽤:

使⽤@media查询,可以针对不同的媒体类型定义不同的样式

@media可以针对不同的屏幕尺⼨设置不同的样式

当重制浏览器⼤⼩的过程中,⻚⾯也会根据浏览器的宽度和⾼度重新渲染⻚⾯

语法:

@media 媒体类型 关键字 (媒体特性){css}

媒体类型(可以同时⽤多个媒体类型,⽤逗号隔开,这样他们之间就是或的关系)

all 所有设备

print 打印设备或打印预览

screen 带屏幕的设备(电脑,⼿机)**

speech 屏幕阅读器

关键字 and not only 来连接

将媒体类型或多个媒体特性连接到⼀起作为媒体查询的条件

and:可以将多个媒体特性连接到⼀起,相当于且的意思

not:排除某个媒体类型,相当于“⾮”的意思,可以省略

only:指定某个特定的媒体类型,可以省略

媒体特性(必须要有⼩括号)

width ⻚⾯可⻅宽度

max-width 视⼝的最⼤宽度(视⼝⼩于指定宽度时就⽣效,⼩于等于xxxpx)

min-width 视⼝的最⼩宽度(视⼝⼤于指定宽度时就⽣效)

max-height 最⼤⾼度

min-height 最⼩⾼度

orientation:landscape 横屏

orientation:portrait 竖屏

常⽤的断点

样式切换的分界点,我们称其为断点,也就是⽹⻚的样式

<style>
 body {
 background-color: red;
 }
 /* 第⼀种⽅式 直接引⼊ */
 /* 在992px-768px之间设置的样式 */
 @media screen and (max-width: 992px) and (min-width: 768px) {
 body {
 background-color: orange;
 }
 }
 /* 可以简写,默认写了screen and */
 @media (max-width: 768px) {
 body {
 background-color: yellowgreen;
 }
 }
 </style>
 <!-- 第⼆种⽅式:外接式,针对不同的界⾯效果,可以写不同的样式,分别引⼊,写的时候,最好从
⼩到⼤来写

 语法:media="媒体类型 关键字 (媒体特性)
 -->
 <link rel="stylesheet" href="./600.css" media="screen and (max-width:
600px) " />

(3)、rem适配⽅案

按照设计稿与设备宽度的⽐例,动态计算并设置html根标签的font-size⼤⼩(媒体查询)

css中,设计稿元素的宽、⾼、相对位置等取值,按照同等⽐例换算为rem为单位的值

根字体=(⼿机横向设备独⽴像素值)/10 例如:iPhone6,根字体=375/10=37.5px 以rem为单位,

即1rem=37.5px

如果设计稿是375px 例如:iPhone6,根字体=375/10=37.5px 以rem为单位,即1rem=37.5px

⻚⾯中数值为:设计值/(设计稿宽度/10) 例如:100px/(375px/10)=2.667rem

⼿机横向设备独⽴像素值,可以⽤flexible.js计算,⽤⾥⾯的js去做处理

css元素的设计值换算⽤css中的Cssrem: Root Font Size去实现 px to rem & rpx & vw (cssrem)

(4)、flexible.js实现

⼿机淘宝团队出得移动端适配库,它的原理是将当前设备划分为10等份,但不同设备下,⽐例还是⼀致的。

只要确定当前html⽂字⼤⼩就可以了.

下载地址:

配合使⽤的插件(vscode中直接安装)

4>、混合布局(主流)

综上所有,⼀起使⽤,选取⼀种主要技术选型,其他技术为辅助(推荐)

rem适配—移动端开发的步骤

第⼀步:拿到多⼤的设计稿,将root font size 改成 :设计稿的⼤⼩/10

第⼆步:引⼊flexable.js ,动态的去修改html的字体⼤⼩

第三步:正常根据设计稿的⼤⼩去开发,将所有的px值换算为rem的值

5>、vw、vh(未来的趋势)

vw也是百分⽐,只不过这个百分⽐只参考设备视⼝

vw(Viewport‘s width):1vw等于视⼝宽度的1%

vh(Viewport’s height):1vh等于视⼝⾼度的1%

vmin:vw和vh中的较⼩值

vmax:选取vw和vh中的最⼤值

(1)、750的设计稿:html{font-size:13.3333vw}

1vw表示1%的屏幕宽度,⽽我们的设计稿通常是750px的,屏幕⼀共是100vw,对应的就是750px,

1vw=75px 那么1px就是0.13333vw,

同时我们知道另⼀个单位rem,rem是相对于html元素字体⼤⼩,放了⽅便计算,我们⾃定义html字体

⼤⼩为100px,

通过上⾯的计算结果我们知道1px是0.13333vw,那么100px就是13.333vw了。

这样后⾯的⽤rem就很好计算了。13.333vw对应的是100px,然后我们就可以很愉快的写rem单位了,

由于⾃定义的1rem=100px,

书写代码时,就是(设计图元素⼤⼩/100),单位是rem

如果750的设计稿设计⼀个盒⼦⼤⼩是200px,⾥⾯有字体⼤⼩50px,那么对应的就是,盒⼦宽⾼

2rem,字体⼤⼩是0.5rem

(2)、1080设计稿:html{font-size:9.259vw}

如果设计稿时1080px,屏幕是100vw,那么对应的1px=0.09259vw,rem根标签依然⾃定义取100px,

那么就是1rem=100px,那么1rem=9.259vw。

如果1080的设计稿设计⼀个盒⼦⼤⼩是200px,⾥⾯有字体⼤⼩50px,那么对应的就是,盒⼦宽⾼

2rem,字体⼤⼩是0.5rem

总结:

虽然还是vw布局,但还是⽤rem去写

1、⽆关屏幕的⼤⼩,反正100vw,就是屏幕的100%,⽤屏幕的⼤⼩作为固定值去换算相对单位

2、⾃定义⼀个rem跟px之间的换算⽐值,为了好算⼀般是1rem=100px,计算出vw跟rem,px之间的关系

例如750的设计稿:1font-size=100px=1rem=13.3333vw

3、后⾯750设计稿上的所有尺⼨都⽤rem来算。例如200px*200px的盒⼦,就是2rem*2rem的盒⼦,也就是

26.666vw*26.666vw的盒⼦。

⽤vw去开发

1、看设计稿是多⼤,⾃定义1rem=100px, 然后1px=xxxvw, 将html{font-size:xxxvw}

2、去更改root font size ,更改1rem=100px

3、根据设计稿的⼤⼩,将px值写成rem

总结:

都是⼀个绝对值为参考值

flexable.js是以设备独⽴像素为绝对值,去算rem的值

vw是设备的视⼝的宽度为绝对值,去算rem的值

最终都是把设计稿中的px换算成rem

  1. 响应式⻚⾯兼容移动端

媒体查询

以上已讲述

bootstarp框架

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值