移动端开发

一、视口(浏览器显示页面内容的屏幕区域)

1、分类

(1)布局视口(layout viewport)不合适

  一般移动浏览器都默认设置了一个布局视口,用于解决早期pc段页面在手机上显示的问题

(2)视觉视口(visual viewport)不合适

  用户正在看到的网站的区域

(3)理想视口(ideal viewport)

  需要手动添写meta视口标签通知浏览器操作,meta视口标签的目的:布局视口宽度应该与理想视口宽度一致

2、meta视口标签

<meta name="viewport" content+"width=device_width,user-scalable=no,initial-scale=1.0,maximum-scale=1.0,minimum-scale=1.0">

3、标准的viewport写法:如上

二、二倍图

1、 物理像素&物理像素比

(1)物理像素点指的是屏幕显示的最小颗粒,是物理真实存在的,PC端1px就是一个物理像素点,但是在移动端不是,

(2)物理像素比:一个px能显示的物理像素的个数称为物理像素比或屏幕像素比,不同手机的物理像素比不同

2、多倍图

准备的图片比实际需要的图片尺寸大两倍,然后手动缩小倍数(直接设置宽度和高度),再放进去

3、背景缩放

background-size:width height;(只写一个参数,一定是宽度,等比例缩放)

cover:完全覆盖盒子,可能有部分显示不全

contain:等比例拉伸到宽度或者高度铺满盒子,可能有部分空白区域

三、移动端开发选择

1、单独制作移动端页面(主流)

通过设备判断,打开相应的页面,两个不同

(1)流式布局(百分比布局)

(2)flex弹性布局

(3)less+rem+媒体查询布局

(4)混合布局

2、响应式兼容pc移动端(其次)

根据浏览器不同来显示,是一个页面

制作麻烦,需要花很大的精力去调兼容性问题

(1)媒体查询

(2)bootstarp

四、移动端技术解决方案

1、CSS初始化

 2、特殊样式

五、移动端常见布局

1、流式布局(百分比布局)

将盒子的宽度设置为百分比(占屏幕的百分比)

可以设置最大宽度和最小宽度:max-width,min-width

六、flex布局

1、布局原理:

任何一个容器都可以使用flex布局

(1)当我们为父盒子设为flex布局以后,子元素的float、clear和vertical-align都失效(flex布局可以是div盒子垂直居中)

(2)采用flex布局的元素称为flex容器,它所有的子元素自动称为flex项目,子容器可以横向排列也可以纵向排列

2、flex常见父项属性

(1)flex-direction 设置主轴方向

在flex布局中,分为主轴和侧轴(x、y轴;行和列),跟着主轴排列

默认主轴:x轴;默认侧轴:y轴

flex-direction属性值

 (2)justify-content 设置主轴上的子元素排列方式

注意:使用这个属性前现确定好主轴是哪个

平分剩余空间:将剩余空间平均分配给每个盒子,magin值一样

(3)flex-wrap 设置子元素是否换行

flex布局中默认子元素不换行,如果装不开会缩小子元素的宽度

nowrap:默认值,不换行;wrap:换行

(4)align-items 设置侧轴上的子元素排列方式(单行)

属性值:

 stretch:拉伸到父盒子的值,但是不能给高度

(5)align-content 设置侧轴上的子元素的排列方式(多行)只能用在子元素换行了的情况下

必须有flex-wrap:wrap

 (6)flex-flow(flex-direction和flex-wrap的复合属性)

flex-flow:flex-diretion flex-wrap

3、flex子项常见属性

(1)flex属性

定义项目分配剩余空间,用flex来表示占多少份数

flex:number 数值越大分配的越多

(2)align-self 控制子项自己在侧轴的对齐方式

允许单个项目有不同的对齐方式,可覆盖align-items属性

(3)order  定义项目的排列顺序

数值越小,排列越靠前,默认为0;一般设置为负数。

没有改变结构,不要改变父元素

4、背景线性渐变

background:linear-gradient(起始方向,颜色1,颜色2,···);

起始方向可以是:方位名词或者度数,如果省略默认是top

七、rem适配布局(宽度和高度都等比例缩放)

1、rem单位

ren是一个相对单位,类似于em,em是父元素的文字大小。

rem的基准是相对于html元素的字体大小

rem的优点:可以通过html里面的文字大小来改变页面中所有的元素,实现整体控制

2、媒体查询(Media Query)

(1)@media可以针对不同的屏幕尺寸设置不同的样式

(2)重置浏览器大小的过程中,页面也会根据浏览器的宽度和高度重新渲染页面

(3)语法规范:@media mediatype and|not|only (media feature) {

                             CSS-Code;

                             }

   mediatype 媒体类型:

关键字 and not only :

media feature 媒体特性,必须有小括号:

(4)媒体查询+rem实现元素动态大小变化

(5)引入资源:当样式比较繁杂时,可以对不同媒体引入不同的样式文件

语法规范:<link rel="stylesheet" href="style320.css media="screen and (min-width: 320px)">

                  <link rel="stylesheet" href="style640.css media="screen and (min-width: 640px)">

3、less基础

(1)维护css的弊端

  css没有变量、函数、作用域等概念,需要书写大量看似没有逻辑的代码,冗余度很高;不方便维护及扩展,不利用复用;没有计算能力。

(2)less

是一门css的扩展语言,加入了程序式语言。

(3)less变量

@变量名:值;

变量命名规范:以@开头,不能包含特殊字符,不能以数字开头,大小写敏感

(4)less编译

编译生成css文件,才能使用

(5)less嵌套

子元素的样式直接写到父元素里面:li{  a{}}

加上&前缀,表示这是父元素自身或者伪类、交集、伪元素选择器

(5)less运算

数字、颜色或者变量都可以进行运算;

运算符的左右两侧必须有一个空格隔开;

两个数参与运算,如果只有一个数有单位,最后的结果以这个单位为准,如果两个都有单位且不一样,以第一个单位为准。

4、rem适配方案

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

(2)换算成rem为单位的值

5、适配方案1

(1)首先选一套标准尺寸 750为准

(2)屏幕尺寸除以划分份数 得到html里面文字的大小

(3)页面元素rem值=页面元素在750像素下的px值除以html里面的文字大小

6、适配方案2 flexible.js+rem

js里面做了处理,不需要写不同屏幕的媒体查询

原理:把当前设备划分为10等份,我们只需设置html里面文字大小,计算元素的rem值

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值