CSS:媒体查询
CSS 中的媒体查询(Media Queries)是响应式设计的基础,允许你根据不同的屏幕或视口尺寸来应用不同的样式规则。
媒体查询主要通过 @media 规则来实现,它可以让你指定一个或多个条件,当这些条件满足时,其中的样式将被应用。
CSS中所支持的媒体类型:常用的有 all(全部)、screen(屏幕)和print(页面打印或打印预览模式)。
应用效果
link方法的media属性
<link rel="stylesheet" href="../css/main.css" media="screen and (max-width:600px)"/>
<link rel="stylesheet" href="../js/layui/css/layui.css" media="print"/>
@import方法的media
<link rel="stylesheet" href="../css/main.css" media="screen and (max-width:600px)"/>
<link rel="stylesheet" href="../js/layui/css/layui.css" media="print"/>
<style>
@import url('css/index.css') screen and (max-width:600px)
@import url('css/print.css') print
</style>
@media方法
@media 媒体类型 and (媒体特性)
{
具体样式
}
语法
@media [only|not] media_type and (expression ),media_type and (expression)
{
css expresion
}
媒体类型
媒体类型 | 说明 |
all | 用于所有设备 |
print | 用于打印机和打印预览 |
screen | 用于电脑屏幕,平板电脑,智能手机等。 |
speech | 应用于屏幕阅读器等发声设备 |
媒体属性
媒体属性 | 说明 |
color | 输出设备每一组彩色原件的个数。如果不是彩色设备,则值等于0 |
height | 输出设备中的页面可见区域高度,可min- max- |
width | 输出设备中的页面可见区域宽度,可min- max- |
device-height | 输出设备屏幕的可见高度,可min- max- |
device-width | 输出设备屏幕的可见宽度,可min- max- |
resolution | 输出设备的分辨率dpi,可min- max- |
orientation | 输出设备中的页面可见区域高度是否大于或等于宽度。portrait纵向模式,即宽度小于高度;landscape横向模式,即宽度大于或等于高度。 |
常见的媒体宽度值
媒体 | 宽度值 | 说明 |
超小设备(手机) | <576px | @media (max-width: 575.99px) |
小型设备(平板) | ≥576px | @media (min-width:576px) and (max-width:767.99px) |
中型设备(PC) | ≥768px | @media (min-width:768px) and (max-width:991.99px) |
大型设备(PC) | ≥992px | @media (max-width:992px) and (max-width:1199.99px) |
超大型设备 | ≥1200px | @media (min-width:1200px) and (max-width:1919.99px) |
超级大设备 | ≥1920px | @media (min-width:1920px) |
@media screen and (max-width:600px){
background-color:#f2f2f2;
}
@media screen and (min-width:480px) and (max-width:900px){
具体样式
}
@media not print and (max-width:480px){
具体样式
}
媒体查询的嵌套
@media screen{
@media (max-width:768.99px){
/*宽度小于768px的屏显设备*/
}
@media (min-width:768px){
/*宽度大于或等于768px的屏显设备*/
}
}
上机训练项目
1.写一个HTML,添加一个DIV元素
2.通过@media分别赋予DIV在手机、Pad、PC端不同的样式,并观察其效果
<style>
@media (max-width:768px){
/*宽度小于或等于768px的屏显设备*/
.my_div{
height:80px;
width:100%;
background-color:blue;
}
}
@media (min-width:768px) and (max-width:1024px) {
/*宽度大于或等于768px,小于等于1024的屏显设备*/
.my_div{
height:80px;
width:100%;
background-color:green;
}
}
@media (min-width:1024px){
/*宽度大于或等于1024px的屏显设备*/
.my_div{
height:80px;
width:100%;
background-color:red;
}
}
</style>
<div class='my_div'></div>