第30篇 移动端响应式布局页面实现
来源:互联网 发布:2016年淘宝会员数量 编辑:程序博客网 时间:2024/06/05 20:32
问题的由来
在以苹果主导的手机厂商,为了手机上能够获得正好的web体验,很多浏览器都会"欺骗"浏览器返回一个较大的宽度,比如你的手机告诉浏览器的我想用1000px显示当前的网页,但是你的手机设备的尺寸远远小于这个宽度,所以浏览器只能做一个缩放,这种体验效果非常的不好。下面就说说如何实现一个响应的设计:
- 视口
关于这个定义,你可以把视口看成一个窗口, 这个窗口决定了你看到的网页的的大小。在移动端浏览器当中,存在着两种视口,一种是可见视口(也就是我们说的设备大小),另一种是视窗视口(网页的宽度是多少)。什么是可见视口,什么又是视窗视口呢? 举一个例子:如果我们的屏幕是320像素*480像素的大小(iPhone4),假设在浏览器中,320像素的屏幕宽度能够展示980像素宽度的内容。那么320像素的宽度就是可见视口的宽度,而能够显示的980像素的宽度就是视窗视口的宽度。 - 视口的约束
视口对于开发者来说并不是一个好的事情,是他让响应式做起来不是很方便,(因为在移动端1000px过于大)并不是我们想要的数值。在移动端开发前,我们应该对视口进行约束。方法就是用一个name为ViewPort的meta进行标记,具体的约束规则可以写在Content中,用逗号分开。如百度html <meta name="viewport" content="width=device-width,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no">
,至于这里面的意思可以参考下H5的知识。
响应式实现
响应式的实现,我觉得具体可以分成两种,1、是做成两个站点和页面,根据当前的手机的设备去做跳转;2、只有一个站点,根据屏幕的大小的自动适配
- 页面跳转
- 页面的跳转的原理:是利用js,根据当前的设备跳转不同的站点,如device.js
- 流布局
- 流布局的定义是利用百分比来设置宽度,但这个只能出现在width,margin,padding,对于border来说却没有用。 这种方式一般只能用于宽度的适配,对于高度来说却没有什么用。
- box-sizing的使用(流布局里面常用) 对于box-sizing属性,这里要提下,在盒子模型里面,这个命令了width的属性。如果设置成border-box,此时的padding表现成一种减的行为,具体的这里就不多说了。
媒体查询
- 说到媒体查询,个人觉得是一个强大的东西,原理是根据当前设备的宽度与设定的宽度对比,从而判断要不要加载当前的样式。当然这种方式使用js,也可以实现,如window.onresize=function(){}。
实现方式:
在css中使用 ,下面的例子是在当前设备为屏幕设备且最小宽度为是600px加载上面的css
如果小于599px则使用 nav li css@media screen and (min-width:600px) {
nav {
float: left;
width: 25%;
}
section {
margin-left: 25%;
}
}
@media screen and (max-width:599px) {
nav li {
display: inline;
}
}在html中头部使用:
<link rel="stylesheet" type="text/css" href="css/iPhone6P.css" media="screen and (min-width: 321px)"
这个是一个筛选的样式处理,如果设备大于320px,则使用iPhone6P.css的样式。
min-width和max-width
这个属性是为了对移动的最大和最小的宽度做约束,如果只使用手机,可以设定body{
max-width:640px;
}这样,无论什么设备都不会出现拉伸变形,但是可能在pad和pc浏览时会有留白。
svg使用
svg是一种矢量格式的图片,用起来方便,可以任意放大图形显示,但绝不会以牺牲图像质量为代价;可在SVG图像中保留可编辑和可搜寻的状态;平均来讲,SVG文件比JPEG和GIF格式的文件要小很多,因而下载也很快。
- 使用方法:
- 当成图片使用
如果把svg变成图片使用,和使用其它的图片的方法一致html <img src="1.svg"/>
- 转换成字体使用 svg转成字体的使用是非常灵活的,可以像字体一样设置大小和颜色。具体使用网站http://iconfont.cn/进行转换,然后下载到本地项目文件里面,最后再对css进行重写。
- 当成图片使用
与设计人员对接
与设计人员对接,是项目的必须的环节,也是很重要的环节,我想要注意以下几个问题:
- 尺寸的转换
设计人员面对设计的时候有一个设计尺寸(也就是参考哪个手机尺寸进行设计的)这个关系到以后尺寸的转换和布局。如美工如果告诉你我设计参考的比例是iphone5(宽度为320px),但图上面标的总尺寸是640px。所以要对后面的高度和宽度都除2. - 单位的使用
对于单位使用,如果是宽度的话,我建议使用rem.面如果是字体和svg图标则使用em为单位。 - 其它
尊重设计人员和其它人的劳动成果(不要喊设计人员"美工"):)
阅读全文
0 0
- 第30篇 移动端响应式布局页面实现
- 移动端响应式布局
- 移动端布局页面实现
- 前端页面响应式布局 简单实现
- 移动端响应式布局通用代码
- 移动端开发-响应式布局
- 响应式布局和移动端操作
- 移动端响应式布局基础
- 移动端基础及响应式布局
- 响应式页面布局
- PC端移动端兼容响应式布局页面的制作
- 移动端页面布局
- 使用css3的@media属性实现页面响应式布局
- 从零开始前端学习[38]:html5中的弹性布局一(移动端响应式实现各种布局,极其重要)
- 从零开始前端学习[39]:html5中的弹性布局二(移动端响应式实现各种布局,极其重要)
- 实现响应式布局
- 【移动端】使用REM进行的响应式布局
- 初学者如何写移动端响应式布局
- 八皇后问题的解和动态演示过程
- “一致性”架构设计
- 深度学习caffe平台-----视觉层(Vision Layers)参数及参数详解
- Intellij idea控制台中文乱码问题
- 第29篇 杂文-写给自己
- 第30篇 移动端响应式布局页面实现
- 第32篇 里约奥运会
- 第33篇 js 常用简单的写法
- SQL预处理SQL_STMT_*的使用和含义
- 第34篇 再谈http协议
- 第35篇 IIS执行原理
- 第36篇 Asp.Net源码解析(一)
- Java实现给定任意年份和月份,输出该月有多少天
- 挑战程序竞赛系列(63):4.7字符串上的动态规划(1)