web前端-移动端响应式与自适应

一. 在HTML的头部加入meta标签

    在HTML的头部,也就是head标签中增加meta标签,告诉浏览器网页宽度等于设备屏幕宽度,且不进行缩放,代码如下:

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

    简单分析一下这一行代码的含义:width=device-width表示网页的宽度等于设备屏幕的宽度,initial-scale=1.0表示设置页面初始的缩放比例为1,user-scalable=no表示禁止用户进行缩放,maximum-scale=1.0 和 minimum-scale=1.0 表示设置最大的和最小的页面缩放比例。因为各大浏览器对meta标签的解析程度不一样,所以我们要尽可能的去兼容所有浏览器。

二. 百分比布局

    在页面布局中,相对宽度和绝对宽度相结合来进行布局,将更有利于网页的可维护性。

三.  响应式页面的实现

    目前一般常见的实现响应式有两种方法,一种是利用媒体查询,另外一种是bootstrap下的栅格布局,以后介绍bootstrap的时候来介绍栅格布局,这里主要来说一下如何利用媒体查询实现响应式布局。

    媒体查询,即 @media 查询,媒体查询可以针对不同的屏幕尺寸设置不同的样式,特别是如果你需要设计响应式的页面,@media 是非常有用的。当你重置浏览器大小的过程中,页面也会根据浏览器的宽度和高度重新渲染页面。因为是设置样式,所以将媒体查询相关的代码放在css文件的最下方即可。

    为了更加清晰地理解响应式的用法,我在下方列举了两个案例。第一个案例比较简单,实现了在不同的页面宽度中改变body的背景颜色的作用。第二个案例以具体的项目来举例,更加方便用户

实例1:

如果页面宽度小于 300 像素,则修改body的背景颜色为红色:

@media screen and (max-width: 300px) {
    body {
         background-color:red;
    }
}

如果页面宽度大于 300 像素并且小于600像素,则修改body的背景颜色为绿色:

@media screen and (min-width: 300px) and (max-width:600px) {
    body {
         background-color:green;
    }
}

如果页面宽度大于 600 像素,则修改body的背景颜色为蓝色:

@media screen and (min-width: 600px) {
    body {
         background-color:blue;
    }
}

代码解释:

  screen 表示电脑屏幕,平板电脑,智能手机等,min-width和max-width 用于定义设备中页面的最小和最大宽度。

四. 页面使用相对字体

  在我们平常的网页布局过程中经常使用绝对单位像素(px)来进行布局,这样的布局不适合我们自适应网页的实现,所以我们现在来介绍两种常见的绝对单位em和rem。rem(font size of the root element)是指相对于根元素的字体大小的单位。简单的说它就是一个相对单位。看到rem大家一定会想起em单位,em(font size of the element)是指相对于父元素的字体大小的单位。它们之间其实很相似,只不过一个计算的规则是依赖根元素一个是依赖父元素计算。

 实际上讲了这么多,大家可能已经了解了rem的用法,但是还不了解如何利用rem去实现移动端的自适应。说到底,rem实现移动端自适应的原来在于它本身的特性,它可以始终根据根元素的字体大小去改变自己的值。目前各种常见手机的屏幕尺寸大小如下图所示:

  

  我们想实现手机端自适应,就是可以让页面的元素字体、间距、宽高等属性的属性值可以随着手机屏幕尺寸的变化而变化,接下来我们看如何利用js来动态的设置rem并实现移动端的自适应,Js代码如下:

//获取html元素
var html = document.getElementsByTagName(‘html‘)[0];
//屏幕的宽度(兼容处理)
var w = document.documentElement.clientWidth || document.body.clientWidth;
//750这个数字是根据你的设计图的实际大小来的,所以值具体根据设计图的大小
html.style.fontSize = w / 750 + "px";

  以上代码实现了利用Js获取设备屏幕的宽度,并根据屏幕的宽度动态改变根元素html的font-siz属性的作用。比如说,对于iphone6而言,屏幕尺寸为750,那么在iPhone6下html的font-size为1px,所以1rem = 1px;对于iPhone5而言,屏幕尺寸为640,那么在iPhone5下html的font-size为640/750 = 0.85333px,所以1rem = 0.85333px。这样的话即使我们对一个元素设置同样的大小和单位,也会在不同的设备下显示不同的大小。比如说div{width:100rem},在iPhone6下它的宽度将等于100px,而在iPhone5下它的宽度等于100 * 0.85333 = 85.333px。这样我们就真正实现了移动端的自适应。

时间: 2024-11-08 19:20:41

web前端-移动端响应式与自适应的相关文章

响应式、自适应式

一点点补充 响应式布局与自适应布局的区别: 1.自适应布局通过检测视口分辨率,来判断当前访问的设备是:pc端.平板.手机,从而请求服务层,返回不同的页面:响应式布局通过检测视口分辨率,针对不同客户端在客户端做代码处理,来展现不同的布局和内容. 2.自适应布局需要开发多套界面,而响应式布局只需要开发一套界面就可以了. 1.灵活性不同: 静态布局:毫无灵活性可言,目前已逐渐被淘汰. 自适应布局:静态布局的升级版,因其强大的灵活性,已逐渐成为高端网页的代名词. 流式布局:灵活性更高,可适用于其他三种网

响应式和自适应的区别

玩前端也有几个月了,发现大家普遍混淆了响应式和自适应的概念.先给大家体验一下响应式和自适应的区别,请放大缩小一下屏幕尝试 自适应的体验http://m.ctrip.com/html5/  响应式的体验 http://segmentfault.com/ 整理了几篇自适应和响应式的文章,摘抄并修改了一下,请大家欣赏: 起初,网页设计者都会设计固定宽度的页面,最开始的电脑显示器分辨率种类不多,因为当时电脑本来就少,即使有变化也是 800 850 870 880.比如 开源中国的网页就是固定宽度为998

响应式与自适应设计

两者的区别? 首先,响应式和自适应最为关键的区别是什么呢? 简而言之,响应式(百分比)就相当于液体,它可以自动适应不同尺寸的屏幕,无论你的设备尺寸多么奇葩.响应式使用CSS media queries的方法,根据目标设备自动改变风格如显示类型,宽度.高度等,这能很好解决不同屏幕尺寸的显示问题. 而自适应设计是基于断点使用静态布局,一旦页面被加载就无法再进行自动适应,自适应会自动检测屏幕的大小来加载适当的工作布局,也就是说,当你要采用自适应设计网站时,你得一个一个设计6种常见的屏幕布局. 1.32

与前端设计师谈响应式设计

昨天下午,我突然冒来一个想法请教下前端设计工程师,我问能否设计一个规避终端的皮肤,也就是不受终端限制的通用性前端框架. 前端工程师告诉我,那叫响应式设计. 我继续问,既然有这个技术,现实中,为什么要搞pc一套,手机一套,平板一套呢,多累啊. 前端告诉我,现实情况复杂很多,做个简单的响应式设计的还可以,复杂的就难了.带着他说的这些问题,还有其他同事所认同他的观念,我并不大认可这些说法(尽管我对前端不大清楚),于是上度娘,并找出一个比较复杂的,有点像大型的电子商务网站的案例(http://www.u

基于rem的移动端响应式适配方案(详解) 移动端H5页面的设计稿尺寸大小规范

基于rem的移动端响应式适配方案(详解) : https://www.jb51.net/article/118067.htm 移动端H5页面的设计稿尺寸大小规范 http://www.tuyiyi.com/v/53039.html 原文地址:https://www.cnblogs.com/bydzhangxiaowei/p/9536126.html

【CSS-移动端响应式布局详解】

背景 移动端响应式布局开发主要方案有: 基于rem开发 基于媒体查询 基于弹性盒 基础概念 在讨论响应式布局知识前,先了解下移动端常用基础概念. 逻辑像素(CSS pixels) 浏览器使用的抽象单位,主要用来在网页上绘制内容:通常在我们实际开发中涉及到的CSS单位px都是指逻辑像素. 设备像素或物理像素(Device Pixels) 显示屏幕的最小物理单位,每个DP包含自己的颜色.亮度.等值的 CSS pixels在手机屏幕上占多大的位置,这不是固定的,这取决于很多属性:经过分析和总结,我们可

Web前端+移动端全套视频教程

Web前端+移动端全套视频教程|12.小程序|01.小程序.rar|11.Vue|05.Vue实战练习.rar|04.Vue UI框架Element-UI.rar|03.Vue路由.rar|02.Vue网络请求.rar|01.Vue基础.rar|10.React|06.React网络请求Fetch.rar|05.React UI框架Antd.rar|04.React路由4.x.rar|03.React路由3.x.rar|02.React环境搭建.rar|01.React基础.rar|09.前端构

web前端响应式布局,自适应全部分辨率

写phpd的我. 近期公司要弄个app关键是没有web开发,而我有比較闲,那就扛枪上阵吧. 响应式布局,web端的?php我一直都是用tp框架,对于web首先想到的是bootstrap框架.仅仅是简单了解过,没真正实践啊.bootstrap比我想象的要好用的多.关键是.关键来了-- app端是仅仅有手机的,pc基本上木有.那就是说仅仅能依照手机端开发,那么boostrap响应式布局就不适用于app了(反正我是做了一套半成品,被推翻了).不能愉快的工作了.好不淡定的时间. .百度.百又问问同事.发

响应式和自适应

很多人容易把[响应式设计]和[自适应]混为一谈,认为都是适配不同的终端,然而他们两个是有本质的区别.响应式设计的目标对象是PC端和Mobile端web页面,设计师出一张图,告诉开发人员,在PC上要显示哪些内容,在Mobile上要显示哪些内容,只需要一个url,一套代码即可.自适应的目标对象是Mobile端web页面,设计师出一张图,开发人员写一套代码,来适配不同手机不同浏览器.他们的根本区别在于显示内容,响应式设计会根据设备来显示不同的内容,而自适应会显示相同的内容,不管设备是什么.综上,你的网