为什么响应式设计需要媒体查询?
媒体查询 中可用于检测的媒体特性有 width、height 和 color(等)。使用媒体查询, 可以在不改变页面内容的情况下,为特定的一些输出设备定制显示效果。
使用媒体查询步骤:
1、在head中引入下面这个meta标签:
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
width = device-width:宽度等于当前设备的宽度
initial-scale:初始的缩放比例(默认设置为1.0)
minimum-scale:允许用户缩放到的最小比例(默认设置为1.0)
maximum-scale:允许用户缩放到的最大比例(默认设置为1.0)
user-scalable:用户是否可以手动缩放(默认设置为no,因为我们不希望用户放大缩小页面)
2、在CSS中可以使用Media
@media screen and (min-width:960px) and (max-width:1200px){ body{ background:yellow; } }
表示为当屏幕宽的像素大于960px并且小于1200px的时候body的背景色为yellow。
3、media所有参数
width:浏览器可视宽度。
height:浏览器可视高度。
device-width:设备屏幕的宽度。
device-height:设备屏幕的高度。
orientation:检测设备目前处于横向还是纵向状态。
aspect-ratio:检测浏览器可视宽度和高度的比例。(例如:aspect-ratio:16/9)
device-aspect-ratio:检测设备的宽度和高度的比例。
color:检测颜色的位数。(例如:min-color:32就会检测设备是否拥有32位颜色)
color-index:检查设备颜色索引表中的颜色,他的值不能是负数。
monochrome:检测单色楨缓冲区域中的每个像素的位数。(这个太高级,估计咱很少会用的到)
resolution:检测屏幕或打印机的分辨率。(例如:min-resolution:300dpi或min-resolution:118dpcm)。
grid:检测输出的设备是网格的还是位图设备。
4、注意事项
响应式设计需要使用百分比和em、rem,不用px。
em:参照的是上下文(父元素)的font-size
rem:参照的是body的font-size
百分比和max-width、min-width配合使用:
#wrapper{ width:96%; max-width:1200px; }
当某个元素宽度使用百分比,而又不想使其超过某像素值.