CSS3的媒体查询@media
通过@media可以针对不同屏幕大小定义不同样式的网页,页面会根据浏览器长宽来渲染页面。
语法:
@media mediaType and|not|only (media feature) {
/*CSS-Code;*/
}
and|not|only
:and放在mediaType后,连接属性,代表将多个media feature结合在一起;
not否定,放在@media后,代表对该条信息取反;
only代表仅仅,一般放在@media后,例如:@media only screen,代表仅仅针对彩色屏幕有效;
mediaType
:媒体类型,:all所有屏幕;screen 用于电脑屏幕,平板电脑,智能手机等;print 用于打印机和打印预览;speech 应用于屏幕阅读器等发声设备
media feature
:媒体功能,max-width:页面最大宽度,min-width:页面最小宽度
在使用媒体查询前面,首先要设置meta标签,其次要加载兼容文件js,设置ie渲染为最高;
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no">
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
<script src="https://oss.maxcdn.com/libs/respond.js/1.3.0/respond.min.js"></script>
<![endif]-->
<meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">
注意:
1. 一般引入第一条
meta
标签就可以使用
2.
and|not|only (media feature)
注意啦
and
和
(media feature)
之间有一个空格!!!
示例:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>媒体查询</title>
<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no">
<style type="text/css">
*{
padding: 0;
margin: 0;
}
/*屏幕宽度大于800px*/
@media screen and (min-width: 800px){
.box{
width:200px;
height: 300px;
background-color: red;
}
}
/*屏幕宽度在500-800之间*/
@media screen and (min-width: 500px) and (max-width: 800px){
.box{
width:200px;
height: 300px;
background-color: yellow;
}
}
/*屏幕宽度小于500之间*/
@media screen and (max-width: 500px){
.box{
width:200px;
height: 300px;
background-color: green;
}
}
</style>
</head>
<body>
<div class="box">
</div>
</body>
</html>
注意
:
max-width代表页面不大于该宽度时,满足该条件
min-width:代表页面不小于该宽度时,满足该条件