网页研究:关于响应式页面

作为一个无线部门的人,不懂移动设备是不行的。而作为一个无线的重构,不会写响应式页面更是不行得。而我,一个无线的重构,在我最近做的一个移动端的项目之前,的确是不会写响应式页面的,所以,严格来说,在这个项目之前,我是一个不合格的无线重构人。

而这个项目,却让我快速地掌握了响应式页面重构的一些方法。下面就是通过这个项目来总结我在响应式页面重构学到的东西。

众所周知,所谓响应式页面,就是能够用一套样式,使你的页面能够在不同分辨率的屏幕下都有很好的表现形式。响应式Web设计,这个概念是Ethan Marctte 在A List Apart 发表的一篇文章“Responsive Web Design”中援引响应式建筑而得名:

响应式建筑(responsive architecture),物理空间应该可以根据存在于其中的人的情况进行相应。

根据我所阅读过一些文章及资料,我总结出响应式页面的几个关键组成部分:

1、页面头部的meta说明,可以通过viewport meta标签去让你的html页面的的宽度能根据设备分辨率让浏览器的可视宽度来适应,也可以在这里设置页面的缩放比例等等,这样在成比例的分辨率设备下,就可以更简单地实现响应式。

<meta name=“viewport” content=“width=device-width, initial-scale=1.0”>

2、流体布局(fluid grid),所谓的流体布局,其实就是在你pc端实现的页面基础上,将一些元素的宽高由原来的固定多少像素(px)调整为百分比(%)或字体比例(em)(或布局方面的margin、padding、left、top等以px为单位的值),这也是当前实现响应式布局的两种主要实现方法。

第一种用百分比(%),就是以该元素的父容器的宽高为100%,其他元素的宽高相对于其父容器的比例,只要将具体的像素值相对于他的父容器的一个百分比折算即可。当然这种方法的换算有点复杂,因为很多相对的宽高折算的百分比系数是带小数的,所以这时候可能要你有足够的耐心才能实现。

在Ethan Marctte的Responsive Web Design这篇文章中给出的一个demo中,我们可以看到他的实际代码里:

@media screen and (max-width: 400px) {

.figure,

li#f-mycroft {

margin-right: 3.317535545023696682%; /* 21px / 633px */

width: 48.341232227488151658%; /* 306px / 633px */ }

第二种方法是用字号比例(em)去实现,其实方法是跟上面一样的,只不过我们将%换成了em,这种方法就是某元素具体的宽高(px)在当前基准字号(font-size)下折算出多少个em。eg: 一个在480分辨率下宽高为64px*64px的元素,其父容器的字号(font-size)为20px,那么它折算成em为单位就是3.2em*3.2em。当其父容器字号基准根据不同的分辨率变化的时候,该元素的宽高也能根据这个字号基准成比例的缩放,就能实现响应式变化。

从上面的两张实例图我们可以看到,同一个元素,宽高为3.2em*3.2em,在360px分辨率下,因为基准字号为15px,故解析出来的实际尺寸为48px*48px,而在480px分辨率下,基准字号为20px,故实际的尺寸为64px*64px。

3、流体图片(liquid image),在我所了解的很多资料中,对图片处理这块,如果要使图片能根据分辨率来适应,而且还不失真,好像挺困难的。但其实我们不用考虑的那么复杂,我们要做的只是让图片能根据不同分辨率自适应罢了,我们不管图片会不会因为被拉伸而失真,因为真的遇到这样的情况,我们可以考虑在不同分辨率下使用不同的图片,这样就简单多了。所以让图片尺寸自适应,我们只要不给图片设定具体的宽高尺寸,只要在样式中给该图片一个width:100%,这样图片就能根据它父容器的尺寸自动调整了。

4、媒体查询(media query),这个也是响应式页面的一个关键技术,根据不同的分辨率去调整一些不同的样式。

@media screen and (max-device-width: 480px) {

.column {

float:none;

}

}

通过上面的这样媒体查询结构,我们可以设定在不同分辨率下选用不同的样式来调整响应式页面。像前面第二点流体布局上,我们使用百分比或字号比例去实现流体布局的时候,第一种方法是可以不用媒体查询直接实现流体布局的,就是元素的宽高能自适应不同分辨率屏幕。

但第二种方法用字号比例(em)去实现流体布局的时候,我们就必须要结合媒体查询了,因为我们的字号比例是根据基准字号来实现的,就是说在基准字号一定的情况下,该元素的大小就是固定的,而我们要实现该元素尺寸自适应,就只能通过调整基准字号来实现了。通过媒体查询,我们可以让在基准字号font-size在不同分辨率下不一样,这样其子元素相对于该字号的比例em算出来的像素px就不一样了,这样就能实现响应式了。

所以我们兼容不同的分辨率的时候,可以先在某个分辨率下,实现完美的重构,然后将所有元素具体的尺寸(px)折算为em(根据父容器的font-size),然后再通过媒体查询,调整不同分辨率下的基准字号font-size就能实现具体的响应式了。

当然媒体查询的功能是根据不同的分辨率适配不同的样式,我们可以通过上面的做法是实现流体布局,还可以通过媒体查询来细调具体的页面在不同分辨率下的不同表现形式。

在我具体的项目过程中,采用媒体查询主要是调整不同分辨率下的基准字号的大小,具体如下面的代码所示:

body,section,button,h1,p,.layer,.downall_btn,.introduce,.playlist,.recom_picbox{font-size:20px;}

/* for 800 px width screen */

@media only screen and (max-device-width:800px),only screen and (max-width:800px){

body,section,button,h1,p,.layer,.downall_btn,.introduce,.playlist,.recom_picbox{font-size:33.34px;}

}

/* for 720 px width screen */

@media only screen and (max-device-width:720px),only screen and (max-width:720px){

body,section,button,h1,p,.layer,.downall_btn,.introduce,.playlist,.recom_picbox{font-size:30px;}

}

前面设置通用字号为20px,当分辨率超过我媒体查询到的最大屏幕宽度的时候就适配该基准字号,下面分别通过媒体查询为分辨率为800px和720px的设备详细调整基准字号,(当然在这里你可以增加更多的样式去调整不同分辨率下的具体表现)使页面在两个分辨率下都能有比较好的表现。可以发现,在800px的分辨率设备中,我的基准字号设置为33.34px,在720px的分辨率设备下的基准字号为30px。

为什么在800px分辨率下基准字号就为33.34px,在720px分辨率下基准字号为30px呢,这是因为我是先以480px分辨率下基准字号为20px去实现的,那么在800px或720px下的基准字号就根据设备分辨率的比例去算出。 这里只给出两个分辨率的例子,其他不同分辨率下的实现方法一样。

通过上面的几点关键技术,我们就可以实现具体的响应式页面了。看完这篇文章,是不是觉得响应式页面其实也没有想象中那么难呢?那么,有空自己去试试吧,只有自己动手实现后才能真正理解其中的奥秘哦!

时间: 2024-12-17 18:25:55

网页研究:关于响应式页面的相关文章

网页设计师采用的响应式页面设计工具

文章描述:随着便携设备用户的指数级增长,网页设计师采用响应式设计作为多平台布局解决方案,不但节省了设计师的时间,而且从长远角度来讲,响应式设计能够为用户提供更舒适的操作环境 随着便携设备用户的指数级增长,网页设计师采用响应式设计作为多平台布局解决方案,不但节省了设计师的时间,而且从长远角度来讲,响应式设计能够为用户提供更舒适的操作环境. 如果你毫无经验,不知从何开始,那么这份工具列表将大大的帮助你,能够让你的布局更有"弹性". Simple Grid Simple Grid是难以置信的

响应式Web设计技巧及编写一个响应式页面实例

响应式 Web 设计技巧 什么是响应式设计? iOS 和 Android 的发布,智能手机.平板电脑.智能家电等新设备层出不穷,极大便利了我们的生活,但面对形形色色的终端设备,千差万别的屏幕分辨率,给网页设计带来了新的挑战,我们无法估计用户的终端设备和网络状况,更不可能为每种设备都专门设计一套网站,如何实现 Web UI 在多终端中的适配呢?2010 年 Ethan Marcotte 曾经在 A List Apart 发表过一篇文章"Responsive Web Design",响应式

20分钟成功编写bootstrap响应式页面 就这么简单_javascript技巧

最近发现一个叫 Bootstrap 的好东西,Bootstrap 是现在最流行的响应式 CSS 框架,它以移动设备优先,能够快速适应不同设备.使用它编写响应式页面快捷.方便,而且屏蔽了浏览器差异.使用了 Bootstrap 后,再也无法想象过去使用原始的 CSS 编写网页的悲惨生活了. 经过学习,我发现自己也具备了分分钟开发出一个高大上的页面的能力.本文将会为大家介绍 Bootstrap,并且带领大家一起实现一个响应式页面.图 1. 移动优先,适应不同设备 一.安装最简单的方式是直接在网页中引用

响应式页面重构 响应式页面重构学到的东西

文章描述:关于响应式页面 作为一个无线部门的人,不懂移动设备是不行的.而作为一个无线的重构,不会写响应式页面更是不行得.而我,一个无线的重构,在我最近做的一个移动端的项目之前,的确是不会写响应式页面的,所以,严格来说,在这个项目之前,我是一个不合格的无线重构人. 而这个项目,却让我快速地掌握了响应式页面重构的一些方法.下面就是通过这个项目来总结我在响应式页面重构学到的东西. 众所周知,所谓响应式页面,就是能够用一套样式,使你的页面能够在不同分辨率的屏幕下都有很好的表现形式.响应式Web设计,这个

网站设计分析:响应式页面的几个关键组成部

    作为一个无线部门的人,不懂移动设备是不行的.而作为一个无线的重构,不会写响应式页面更是不行得.而我,一个无线的重构,在我最近做的一个移动端的项目之前,的确是不会写响应式页面的,所以,严格来说,在这个项目之前,我是一个不合格的无线重构人. 而这个项目,却让我快速地掌握了响应式页面重构的一些方法.下面就是通过这个项目来总结我在响应式页面重构学到的东西. 众所周知,所谓响应式页面,就是能够用一套样式,使你的页面能够在不同分辨率的屏幕下都有很好的表现形式.响应式Web设计,这个概念是Ethan

迅雷CUED:关于响应式页面设计

  作为一个无线部门的人,不懂移动设备是不行的.而作为一个无线的重构,不会写响应式页面更是不行得.而我,一个无线的重构,在我最近做的一个移动端的项目之前,的确是不会写响应式页面的,所以,严格来说,在这个项目之前,我是一个不合格的无线重构人. 而这个项目,却让我快速地掌握了响应式页面重构的一些方法.下面就是通过这个项目来总结我在响应式页面重构学到的东西. 众所周知,所谓响应式页面,就是能够用一套样式,使你的页面能够在不同分辨率的屏幕下都有很好的表现形式.响应式Web设计,这个概念是Ethan Ma

求助!网页如何实现响应式消息提示

问题描述 求助!网页如何实现响应式消息提示 大侠们好,想实现的网页效果:A网页点击下单,B网页提示有人下单 我不知道问题的名字有没有错...这个是不是叫响应式消息提示? 想知道这种效果是如何实现的,学Web不久,如果有代码参考就更好了. 解决方案 最简单的轮询: 1.B网页用Ajax定时请求某个查询是否有新订单的网页,如果有新的订单就返回. 2.B网页使用长连接,B网页请求后服务器端一直不返回,直到有新订单就返回结果给浏览器,因为要保持连接,所以B网页使用人数不宜过多. 当然最好的,最即时的,最

新手有问,如果电商网页不采用响应式的话,那该怎么用HTML和css设置布局和样式?

问题描述 新手有问,如果电商网页不采用响应式的话,那该怎么用HTML和css设置布局和样式? 如同标题,我本来想采用bootstrap框架的,但好像看到很多电商网站都不是用响应式布局的,我又想样式好看点,该怎么办呢...我的课程设计,求大神解答 解决方案 css media query,不同分辨率用不同样式控制显示 http://www.cnblogs.com/mofish/archive/2012/05/23/2515218.html 解决方案二: bootstrap是响应式框架.如果要做响应

用rem实现响应式页面开发

rem是什么?     rem(font size of the root element)是指相对于根元素的字体大小的单位.简单的说它就是一个相对单位.看到rem大家一定会想起em单位,em(font size of the element)是指相对于父元素的字体大小的单位.它们之间其实很相似,只不过一个计算的规则是依赖根元素一个是依赖父元素计算.     网页中的根元素指的是html我们通过设置html的字体大小就可以控制rem的大小. html{ font-size:20px; } .bt