什么是响应式网页设计?
Responsive Web Design (响应式web网页设计),简而言之,就是一个网站能够兼容多个终端,根据终端屏幕的大小亦或类型而调整显示的布局与内容——而不是为每个终端做一个特定的版本。
响应式布局是今年很流行的一个设计理念,随着移动互联网的盛行,为解决如今各式各样的浏览器分辨率以及不同移动设备的显示效果,设计师提出了响应式布局的设计方案。
应用响应式网页设计,可以使我们不必针对具体设备或屏幕编写单独的网页,不需另建单独的网址,一个页面适用于所有的设备!
说到响应式布局,就不得不提起CSS3中的Media Query(媒介查询),这可是个好东西,易用、强大、快捷……Media Query是制作响应式布局的一个利器,使用这个工具,我们可以非常方便快捷的制造出各种丰富的实用性强的界面。接下来就一起来深入的了解Media Query。
1、CSS中的Media Query(媒介查询)是什么?
通过不同的媒体类型和条件定义样式表规则。媒体查询让CSS可以更精确作用于不同的媒体类型和同一媒体的不同条件。媒体查询的大部分媒体特性都接受min和max用于表达”大于或等于”和”小与或等于”。如:width会有min-width和max-width媒体查询可以被用在CSS中的@media和@import规则上,也可以被用在HTML和XML中。通过这个标签属性,我们可以很方便的在不同的设备下实现丰富的界面,特别是移动设备,将会运用更加的广泛。
2、media query能够获取哪些值?
设备的宽和高device-width,device-heigth显示屏幕/触觉设备。
渲染窗口的宽和高width,heigth显示屏幕/触觉设备。
设备的手持方向,横向还是竖向orientation(portrait|lanscape)和打印机等。
画面比例aspect-ratio点阵打印机等。
设备比例device-aspect-ratio-点阵打印机等。
对象颜色或颜色列表color,color-index显示屏幕。
设备的分辨率resolution。
3、注意
重要的是在页面的头部<head></head>之间加上下面这句∶
<meta name=“viewport”content=“width=device-width; initial-scale=1.0”>
Meta viewport这个属性是在移动设备上设置原始大小显示和是否缩放的声明。
参数设置∶
width– viewport的宽度
height– viewport的高度
initial-scale– 初始的缩放比例
minimum-scale– 允许用户缩放到的最小比例
maximum-scale– 允许用户缩放到的最大比例
user-scalable– 用户是否可以手动缩放
4、语法结构及用法
@media 设备名only (选取条件)not (选取条件)and(设备选取条件),设备二{sRules}
示例一:在link中使用@media:
<link rel=“stylesheet”type=“text/css” media=“only screen and (max-width:480px),only screen and (max-device-width:480px)” href=“link.css”/>
上面使用中only可省略,限定于计算机显示器,第一个条件max-width是指渲染界面最大宽度,第二个条件max-device-width是指设备最大宽度。
示例二:在样式表中内嵌@media:
@media (min-device-width:1024px)and (max-width:989px),screen and (max-device-width:480px),(max-device-width:480px)and (orientation:landscape),(min-device-width:480px)and (max-device-width:1024px)and (orientation:portrait){srules}
在示例二中,设置了电脑显示器分辨率(宽度)大于或等于1024px(并且最大可见宽度为989px);屏宽在480px及其以下手持设备;屏宽在480px以及横向(即480尺寸平行于地面)放置的手持设备;屏宽大于或等于480px小于1024px以及垂直放置设备的css样式。
从上面的例子可以看出,字符间以空格相连,选取条件包含在小括号内,srules为兼容设置的样式表,包含在中括号里面。only(限定某种设备,可省略),and(逻辑与),not(排除某种设备)为逻辑关键字,多种设备用逗号分隔,这一点继承了css基本语法。
最后对于在IE浏览器中不支持media query的情况,我们可以使用Media Query JavaScript来解决,只需要在页面头部引用css3-mediaqueries.js即可。示例:
<!--[if lt IE 9]>
<script src=“http://css3-mediaqueries-js.googlecode.com/svn/trunk/css3-mediaqueries.js”></script>
<![endif]-->
老版本的IE不支持max-width,所以只好写成:
img { width: 100%; }
此外,windows平台缩放图片时,可能出现图像失真现象。这时,可以尝试使用IE的专有命令:
img { -ms-interpolation-mode: bicubic; }
优点:
面对不同分辨率设备灵活性强
能够快捷解决多设备显示适应问题
缺点:
兼容各种设备工作量大,效率低下,代码累赘,会出现隐藏无用的元素,加载时间加长
一定程度上改变了网站原有的布局结构,会出现用户混淆的情况