李金帅
能将喜欢的东西留在身边,这就是我努力的意义。

响应式布局之媒体查询

2020-04 HTML
Word count: 1.5k | Reading time: 5min

一、什么是响应式布局?

​ 响应式布局指的是同一页面在不同屏幕尺寸下有不同的布局。传统的开发方式是PC端开发一套,手机端再开发一套,而使用响应式布局只要开发一套就够,缺点就是CSS比较重。

二、响应式布局的实现方案——媒体查询

​ CSS3 Media Query(媒体查询)@media可以根据不同的屏幕尺寸设置不同的样式,页面布局分别适应移动端、pc端等,在调整浏览器的大小,页面会根据媒体的宽度和高度来重新布置样式。媒体查询可以用于检测很多东西:自动检测viewpoint(视窗)的宽度和高度;设备的宽度和高度;旋转方向(智能手机横屏或竖屏);分辨率大小。

三、CSS3语法规则

(一)直接写在css样式中

@media mediatype and/not/only (media feature) { CSS-Code }

如何理解@media的语法规则:
使用媒体查询必须是以 @media 开头;

然后指定设备类型(媒体类型mediatype);
接着是括号()里的规定媒体/设备特征(media feature),媒体特征的书写格式与css样式类似,都是属性名:属性值(例如min-width:200px);
最后跟着的大括号{ css-code },里面放置的是要设置的css样式。

逻辑运算符:

not:用来排除某种设备。比如,排除打印设备 @media not print;
only:用以指定某特定媒体设备。对于支持 Media Queries 的移动设备来说,如果存在 only 关键字,移动设备的 Web 浏览器会忽略 only关键字并直接根据后面的表达式应用样式文件。对于不支持 Media Queries 的设备但能够读取 Media Type 类型的 Web浏览器,遇到 only 关键字时会忽略这个样式文件。
all: 适用于所有的设备类型;
and:媒体查询中使用来连接多种媒体特性,一个媒体查询中可以包含0或多个表达式,表达式可以是0或多个关键字,以及一种媒体类型。

如:@media screen and (max-width:800px) and (min-width:400px)

(二) 针对不同的媒体设备外部链入不同的 stylesheets(外部样式表)

​ 定义媒体查询的部分放在标签内,用media属性标注,media=" 媒体类型 and/not/only(媒体特性)"

四、浏览器兼容

img

五、CSS3多媒体的类型 MediaType

all 适用于所有类型
print 适用于打印机和打印预览
screen 适用于电脑屏幕、平板电脑、智能手机等
speech 适用于屏幕阅读器

六、媒体特性 Media Feature “条件”

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
值	描述
aspect-ratio 定义输出设备中的页面可见区域宽度与高度的比率
color 定义输出设备每一组彩色原件的个数。如果不是彩色设备,则值等于0
color-index 定义在输出设备的彩色查询表中的条目数。如果没有使用彩色查询表,则值等于0
device-aspect-ratio 定义输出设备的屏幕可见宽度与高度的比率。
device-height 定义输出设备的屏幕可见高度。
device-width 定义输出设备的屏幕可见宽度。
grid 用来查询输出设备是否使用栅格或点阵。
height 定义输出设备中的页面可见区域高度。
max-aspect-ratio 定义输出设备的屏幕可见宽度与高度的最大比率。
max-color 定义输出设备每一组彩色原件的最大个数。
max-color-index 定义在输出设备的彩色查询表中的最大条目数。
max-device-aspect-ratio 定义输出设备的屏幕可见宽度与高度的最大比率。
max-device-height 定义输出设备的屏幕可见的最大高度。
max-device-width 定义输出设备的屏幕最大可见宽度。
max-height 定义输出设备中的页面最大可见区域高度。
max-monochrome 定义在一个单色框架缓冲区中每像素包含的最大单色原件个数。
max-resolution 定义设备的最大分辨率。
max-width 定义输出设备中的页面最大可见区域宽度。
min-aspect-ratio 定义输出设备中的页面可见区域宽度与高度的最小比率。
min-color 定义输出设备每一组彩色原件的最小个数。
min-color-index 定义在输出设备的彩色查询表中的最小条目数。
min-device-aspect-ratio 定义输出设备的屏幕可见宽度与高度的最小比率。
min-device-width 定义输出设备的屏幕最小可见宽度。
min-device-height 定义输出设备的屏幕的最小可见高度。
min-height 定义输出设备中的页面最小可见区域高度。
min-monochrome 定义在一个单色框架缓冲区中每像素包含的最小单色原件个数
min-resolution 定义设备的最小分辨率。
min-width 定义输出设备中的页面最小可见区域宽度。
monochrome 定义在一个单色框架缓冲区中每像素包含的单色原件个数。如果不是单色设备,则值等于0
orientation 定义输出设备中的页面可见区域高度是否大于或等于宽度。 值:landscape:横屏 portrait:竖屏
resolution 定义设备的分辨率。如:96dpi, 300dpi, 118dpcm
scan 定义电视类设备的扫描工序。
width 定义输出设备中的页面可见区域宽度。
min-device-pixel-ratio 最小设备像素比。
width/height :定义输出设备中的 页面可见区域宽度/高度,输出的是你的网页可见区域的宽高。
device-width/height :定义输出设备的屏幕可见宽/高度。不管你的网页是在safari打开还是嵌在某个webview中,device-width都只跟你的设备有关,如果是同一个设备,那么他的值就不会变。比如iphone6的device-width、device-height为375、667,而跟他的dpr等无关。

样例网站: 星巴克官网,苹果官网,三星官网

Author: 李金帅

Link: https://lijinshuai21.github.io/Li_JinShuai_Blog/2020/04/01/%E5%AA%92%E4%BD%93%E6%9F%A5%E8%AF%A2/

Copyright: All articles in this blog are licensed under CC BY-NC-SA 3.0 unless stating additionally.

< PreviousPost
运算符的优先级
CATALOG
  1. 1. 一、什么是响应式布局?
  2. 2. 二、响应式布局的实现方案——媒体查询
  3. 3. 三、CSS3语法规则
    1. 3.0.1. (一)直接写在css样式中
  4. 3.1. 逻辑运算符:
    1. 3.1.1. (二) 针对不同的媒体设备外部链入不同的 stylesheets(外部样式表)
  • 4. 四、浏览器兼容
  • 5. 五、CSS3多媒体的类型 MediaType
  • 6. 六、媒体特性 Media Feature “条件”