现在响应式没有以前那么火了,因为响应式有一个缺点,它需要将所有的资源进行加载,即使是没有显示的,很浪费资源,影响用户体验,但是日常开发中,我们仍需要使用它进行一些开发。
媒体查询(@media)
媒体类型
-
all所有设备 -
print打印机设备 -
screen彩色的电脑屏幕 -
speech听觉设备(针对有听力障碍的人士,可以把页面的内容以语音的方式呈现的设备)
注意:tty、tv、projection、handheld、braille、embossed、aural等几种类型在媒体查询4中已经废弃
媒体特性
-
width宽度-
min-width最小宽度,宽度只能比这个值大
-
-
height高度-
max-height最大高度,高度只能比这个值小
-
-
orientation方向,有下面两个值-
landscape宽度大于高度(横屏) -
portrait高度大于宽度(竖屏)
-
-
aspect-ratio宽高比 -
-webkit-device-pixel-ratio像素比(webkit内核私有的属性)
逻辑运算符
-
and合并多个媒体类型(并且的意思)
/* 所有设备、宽度必需大于700px、横屏,这三个条件同时满足才为true */
@media (min-width:700px) and (orientation:landscape){
div{
background: green;
}
}
-
,匹配某个媒体查询(或者的意思)
/* 屏幕尺寸要小于800px, 横屏,这两个只要有一个满足,整个条件就会满足*/
@media (max-width:800px),(orientation:landscape){
div{
background: pink;
}
}
-
not对媒体查询结果取反(不能单独使用,后面必需是复合语句)
/* 屏幕的尺寸大于800,这个条件才能成立 */
@media not all and (max-width:800px){
div{
background: blue;
}
}
-
only仅在媒体查询匹配成功后应用样式(防范老旧浏览器)
/* 彩色的屏幕,宽度大于1000px,这两个条件同时满足,整体条件才满足 */
@media only screen and (min-width:1000px){
div{
background: grey;
}
}
响应式引入样式
- 第一种是直接将响应式和普通样式写在一起
- 第二种方法是将不同尺寸的样式分开,然后按需引入
<link rel="stylesheet" href="css/200.css" media="all and (min-width:200px)">
<link rel="stylesheet" href="css/400.css" media="(min-width:400px)">
<link rel="stylesheet" href="css/600.css" media="(min-width:600px)">
<link rel="stylesheet" href="css/800.css" media="(min-width:800px)">
<link rel="stylesheet" href="css/1000.css" media="(min-width:1000px)">
发表回复