关于前端移动端界面的制作方法

320 阅读6分钟

移动端网页开发

移动web开发基础

关于浏览器:

兼容移动端主流浏览器,处理Webkit内核浏览器即可。

移动端调试方法:

1.Chrome DevTools 的模拟手机调试。

2.搭建本地web服务器,手机和服务器一个局域网内,通过手机访问服务器。

3.使用外网服务器,直接IP或域名访问。

4.学会用谷歌浏览器模拟手机界面及调试。

视口

视口:浏览器显示页面内容的屏幕区域。视口可以分为布局视口,视觉视口和理想视口。

布局视口layout viewport

视觉视口visual viewport:

网站的区域,我们可以通过缩放去操作视觉视口,但不会影响布局视口,布局仍保持原来的宽度。

理想视口 ideal viewport:

1.为了使网站在移动端最有理想的浏览和阅读宽度而设定的。

2.理想视口,对设备来讲,是最理想的视口尺寸。

3.需要手动添写meta视口标签通知浏览器操作。

4.meta视口标签主要目的:布局视口的宽度应该与理想视口的宽度一致,简单理解就是设备有多宽,我们布局的视口就有多宽。

meta视口标签:

属性值

width:设置视口宽度,可以设置device-width特殊值。

initial-scale:初始缩放比,大于0的数字。

maximum-scale:最大缩放比,大于0的数字

minimum-scale:最小缩放比,大于0的数字。

user-scalable:用户是否可以缩放,yes或者no(1或0)。

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

二倍图

物理像素&物理像素比

物理像素:屏幕显示最小颗粒,是物理真实存在的。

物理像素比:一个px的能显示的物理像素点个数。

移动端开发选择

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

通常,网址域名前面加m(mobile)可以打开移动端。通过设备判断,如果是移动设备打开,则跳到移动端页面。

响应式兼容PC移动端

响应式网站,即pc端和移动端共用一套网站,只不过在不同宽度的屏幕下,样式会自动适配。

移动端常见问题解决方案

移动浏览器基本以webkit内核为主,因此我们就考虑webkit兼容性问题。可以放心使用H5C3样式。同时我们浏览器的私有前缀我们只需要考虑添加-webkit-即可。

CSS初始化normalize.css

优点:

1.保护了有价值的默认值。

2.修复了浏览器的bug,解决了浏览器的不一致的默认样式。

3.Normalize.css是模块化,提高了易用性。

4.Normalize.css拥有详细的文档。

移动端技术选型

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

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

2.flex弹性其布局(强烈推荐)

3.less+rem+媒体查询布局

4.混合布局

响应式页面兼容移动端(其次):

1.媒体查询

2.bootstrap

流式布局(百分比布局)

1.流失布局,就是百分比布局,也成非固定像素布局

2.通过将盒子的宽度设置成百分比,从而根据屏幕宽度来进行伸缩,不受固定像素的限制,内容向两侧填充。

3.流式布局方式是移动web开发使用的比较常见的布局方式。

注意事项:

定义最大和最小支持宽度。

1.max-width最大宽度(max-height最大高度)

2.min-width最小宽度(min-height最小高度)

传统布局与flex布局

传统布局:兼容性好,布局繁琐,局限性,不能在移动端很好的布局。

flex布局:操作方便,布局极为简单,移动端应用很广泛,PC端浏览器支持情况较差,IE或者更低版本,不支持或仅部分支持。

flex布局父项常见属性:

flex-direction 设置主轴方向。默认主轴为x轴方向,侧周则是y轴方向。

属性值:

row 默认从左到右

row-reverse 从右到左

column 从上到下

column-reserve 从下到上

justify-content主轴上子元素的排列方式

属性值:

flex-start 默认值,从头部开始,如果主轴是x轴则从左到右

flex-end 从尾部开始排列

center 在主轴居中对齐,如果主轴是x轴则水平居中

space-around 平分剩余空间

space-between 先两边贴边再平分剩余空间

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

属性值:

nowrap 默认值,不换行

wrap 换行

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

属性值:

flex-start 默认值,从上到下

flex-end 从下到上

center 挤在一起居中(垂直居中)

stretch 拉伸

align-content侧轴子元素排列方式(多行)

属性值:

flex-start 在侧周头部开始排列

flex-enf 从侧轴的尾部开始排列

center 在侧周中间显示

space-around 子项在侧轴平分剩余空间

space-between 子项在侧周先分布在两头,再平分剩余空间

stretch 设置子项元素高度平分父元素高度

flex-flow:

flex-flow:是flex-direction和flex-wrap属性的复合属性。

flex属性:

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

属性值为数字,数字1则表示占总份数中的一份,默认值是0.

.item{
flex:<number>;
}

align-self控制子项自己在侧周上的排列方式。(可覆盖)

例如:

span:nth-child(2){
align-self:flex-end;
}

rem 单位

rem的优势:参考元素是固定的。

媒体查询

语法规范:

1.用@media开头,注意@符号。

2.mediatype媒体类型。

3.关键字 and not only

4.media feature媒体特性必须有小括号包含。

    body{
        background-color:pink;
    }
    <!-- 对内容进行设置,如背景颜色等等,如 -->
}

媒体类型:

all 用于所有设备

print 用于打印机和打印预览

screen 用于电脑屏幕,平板电脑,只能手机等

媒体特性:

width:定义输出可见宽度

min-width:定义输出设备中页面最小可见可见区域宽度max-width:定义输出设备中页面最大可见可见区域宽度

引入资源方法

<link rel="stylesheet" href="文件" media="screen and (min-width:320px)">

less变量

@变量名:值;

变量使用规范:

@color:pink;
body{
    color:@color;
}
a:hover{
    color:@color;
}

less嵌套写法

如传统写法:

 #header .logo{
    width:300px;
}

less嵌套写法

 #header {
    .logo{
        width:300px;
    }
}

如果遇见(交集|伪类|伪元素选择器)

1.内层选择器的前面没有&符号,则他被解析为父选择器的后代

2.如果有&符号,则是父元素自身或者父元素的伪类。

a{
    &:hover{
        color:red;
    }
}

less运算:(运算符左右必须加空格)

@width:10px + 5;
div{
    border:@width solid red;
}
div{
    border:15px solid red;
}
width:(@width + 5) * 2;

rem适配方案:

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

2.CSS中,设计稿元素的宽,高,相对位置等取值,按照同等比例换算为rem为单位的值。

1.less+媒体查询+rem

2.flexible.js+rem(简单)

方案一:

设计稿常见宽度

响应式开发原理:

使用媒体查询针对不同宽度的设备进行布局和样式设置,从而适配不同设备的目的。

超小屏幕(手机) <768px

小屏设备(平板) >=768px~<992px

中等屏幕(桌面显示器) >=992px~<1200px

宽屏设备(大桌面显示器) >=1200px

Bootstrap

使用步骤:

1.创建文件结构

2.创建html骨架结构

3.引入相关样式文件

4.书写内容