什么是响应式?
响应式(Responsive web design, RWD),是指一套应用程序用户界面(User Interface)能自动响应不同设备窗口或屏幕尺寸(screen size)并且内容,布局渲染表现良好。
什么是自适应?
自适应设计(AWD),是指一个应用程序使用多版本用户界面,针对不同设备屏幕,服务器端返回不同版本用户界面,供用户访问。
一、响应式设计步骤
1.设置meta标签
在<head>
标签里加入这个meta标签,下面的视图标签告诉浏览器,使用设备的宽度作为视图宽度并禁止初始的缩放。
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
2.通过媒介查询设置样式
Media Queries 是响应式设计的核心,它根据条件告诉浏览器如何为指定视图宽度渲染页面。
假如一个终端的分辨率小于 980px,那么可以这样写:
@media screen and (max-width: 980px) {
#head { … }
#content { … }
#footer { … }
}
3.设置多种视图宽度
假如我们要设定兼容 iPad 和 iPhone 的视图,那么可以这样设置:
/** iPad **/
@media only screen and (min-width: 768px) and (max-width: 1024px) {}
/** iPhone **/
@media only screen and (min-width: 320px) and (max-width: 767px) {}
二、设计时需要注意
1.宽度使用百分比
#head { width: 100% }
#content { width: 50%; }
.row{
width: 100%;
}
.row .col-1 {
width: 8.33333333333%
}
.row .col-2 {
width: 16.6666666667%
}
/* 省略... */
.row .col-12 {
width: 100%
}
2.处理图像缩放的方法
- 使用百分比,但这样不友好,会放大或者缩小图片。
- 给图片指定最大宽度为百分比。假如图片超过了,就缩小;假如图片小了,就原尺寸输出。
img { width: auto; max-width: 100%; }
- 结合 css3 的 attr 属性和 HTML 自定义属性的功能
HTML结构:
<img src="image.jpg"
data-src-600px="image-600px.jpg"
data-src-800px="image-800px.jpg"
alt="">
CSS样式:
@media (min-device-width:600px) {
img[data-src-600px] {
content: attr(data-src-600px, url);
}
}
@media (min-device-width:800px) {
img[data-src-800px] {
content: attr(data-src-800px, url);
}
}
3.其他属性
例如 pre
,iframe,video
等,都需要和img
一样控制好宽度。对于table
,建议不要增加 padding 属性,低分辨率下使用内容居中:
table th, table td { padding: 0 0; text-align: center; }