1.什么是响应式 Web 设计?
- 响应式 Web 设计让你的网页能在所有设备上有好显示。
- 响应式 Web 设计只使用 HTML 和 CSS。
- 响应式 Web 设计不是一个程序或Javascript脚本。
2.响应式的作用:设计最好的用户体验
友好的用户体验是网页可以在任何设备上展示和操作,设备包括桌面系统设备,平板电脑,iPhone等手机等。
网页应该根据设备的大小自动调整内容。
页面的设计与开发根据用户行为以及设备环境(系统平台、屏幕尺寸、屏幕定向等)进行相应的响应和调整称之为响应式 Web 设计。
3.自适应设计或者响应式设计的方法
(1)使用@media,条件(min-width: 768px)判断当浏览器的宽度小于768px值时,改变样式。
@media (min-width: 768px) { .main { width: 25%; float: left; } }
通过媒体查询选择性加载css,意思是自动探测屏幕宽度,然后加载相应的CSS文件。
<link rel="stylesheet" type="text/css" media="screen and (max-device-width: 400px)" href="tinyScreen.css" />
上面的代码意思是,如果屏幕宽度小于400像素(max-device-width: 400px),就加载tinyScreen.css文件。
link rel="stylesheet" type="text/css" media="screen and (min-width: 400px) and (max-device-width: 600px)" href="smallScreen.css" />
上面的代码意思是:如果屏幕宽度在400像素到600像素之间,则加载smallScreen.css文件。
(2)宽度使用百分比,尽量少使用绝对值宽度。
由于网页会根据屏幕宽度调整布局,所以不能使用绝对宽度的布局,也不能使用具有绝对宽度的元素。这一条非常重要。
例如:
不能使用一下css代码:
div{width:xxx px}
在响应式中,应该这么使用:
div{ width:100%; //或者 width:auto; }
(3)字体的设置相对大小
移动端字体也不能使用绝对大小(px),而只能使用相对大小(em)或者高清方案(rem),rem不局限于字体大小,前面的宽度width也可以使用,代替百分比
body{ font: normal 100% Helvetica, Arial, sans-serif;//设置字体大小为默认大小,16像素 }
移动端设置字体大小:
在移动端上,设置字体为24px,则24/16=1.5,p的大小是默认大小的1.5倍,即24像素(24/16=1.5)。
p{font-size: 1.5em}
(4)流动布局(fluid grid)
“流动布局”的含义是,各个区块的位置都是浮动的,不是固定不变的。
.leftDiv{ float: left; width: 70%; } .rightDiv { float: right; width: 25%; }
4.具体理解
在网页上,写一个普通的网页效果
<!DOCTYPE html> <html> <head> <title>测试</title> <meta charset="utf-8"> <!-- <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"> --> </head> <style type="text/css"> p{border: 1px solid black;} </style> <body> <div> <p>响应式原理</p> </div> </body> </html>
模拟手机上看到的样式,字体很小,看不清,是因为按照电脑上的像素对字体进行设置的,分辨率不一样。
加上代码后的样式:
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
- viewport: 一般指的是浏览器窗口内容区的大小,不包含工具条、选项卡等内容
- width: 浏览器宽度,输出设备中的页面可见区域宽度
- device-width: 设备分辨率宽度,输出设备的屏幕可见宽度
- initial-scale: 初始缩放比例
- maximum-scale: 最大缩放比例