CSS的@media与@media screen,媒体查询

媒体查询@media与@mediascreen:理解与应用
媒体查询@media和@mediascreen在网页自适应设计中用于根据设备特性应用不同CSS样式。@media适用于所有设备,包括打印设备,而@mediascreen在打印设备上无效。通过调整表达式,如max-width、max-device-width和device-aspect-ratio,可以精确匹配不同屏幕尺寸和比例。媒体查询也可在<link>标签中使用,控制样式表在特定设备上的应用。

在网站自适应设计中,@media与@media screen是经常会用到的css代码,其功能就是为不同的媒体设置不同的css样式,这里的“媒体”包括页面尺寸,设备屏幕尺寸等。

@media与@media screen区别


@media与@media screen两者在电脑&手机设备上没有区别,但@media screen的css在打印设备里是无效的,而@media在打印设备里是有效的,如果css需要用在打印设备里,就用@media;否则,就用@media screen。

不过这只是笼统的做法,其实如果把screen换为print,写为@media print,那么该css就可用到打印设备上了,但要注意,@media print声明的css只能在打印设备上有效!

@media语法


以@media或@media screen and开头的语句就是媒体查询语句。@media后面是一个或者多个表达式,如果表达式为真,则应用样式。
 

@media (max-width: 600px) {
	.class1 {
    	​background: #fff;
  	}
}
@media screen and (max-device-width: 600px) {
	.class2 {
		​background: #ccc;
	}
}
@media only screen and (device-aspect-ratio:4/3){
	.class3 {
		​background: #eee;
	}
}

max-width 是目标显示区域的宽度,例如,浏览器宽度。
max-device-width 是设备整个显示区域的宽度,例如,真实的设备屏幕宽度。
device-aspect-ratio 可以适配特定屏幕长宽比的设备,例如,设备屏幕长宽比为4:3、16:9或16:10。

媒体查询media还可以作为属性在 link标签中使用:

<link rel="stylesheet" type="text/css" href="style.css" media="screen and (min-width: 600px) and (max-width: 800px)">

意思是:当屏幕的宽度大于600px且小于800px时,应用style.css文件。

知识拓展

@media only screen and

only:限定某种设备。
screen:彩色电脑屏幕,是媒体类型里的一种。
and:关键字,连接多个表达式。
not:关键字,排除不支持的媒体类型。
其他媒体类型:all(所有设备)、braille(盲文)、embossed(盲文打印)、print(文档打印或打印预览模式)、projection(项目演示,比如幻灯)、speech(演讲)、tv(电视)。
 

CSS `@media screen` 是一种用于响应式设计的媒体查询规则,允许根据设备的特性应用不同的样式。以下是关于它的一些基础知识: ### 基本语法 `@media` 规则以 `@media` 开头,后面跟媒体类型和媒体特性,语法如下: ```css @media mediatype and|not|only (media feature) { CSS-Code; } ``` 其中,`mediatype` 表示媒体类型,`and`、`not`、`only` 是关键字,`media feature` 是媒体特性,必须用小括号包含 [^2]。 ### 媒体类型 在 `@media` 规则中,`screen` 是常用的媒体类型之一,用于电脑屏幕、平板电脑、智能手机等设备。此外,还有其他媒体类型,如 `all`(用于所有设备)、`print`(打印机和打印预览)等 [^2]。 ### 关键字 - **and**:用于连接多个媒体特性,表示“且”的关系。例如,`screen and (min-width: 600px) and (max-width: 800px)` 表示在屏幕设备上,宽度在 600px 到 800px 之间时应用样式 [^1]。 - **not**:用于排除某种媒体类型,表示“非”的关系。可以省略。 - **only**:用于限定某个特定的媒体类型,可以省略 [^2]。 ### 媒体特性 媒体特性用于描述设备的具体特性,常见的媒体特性有: - **width**:可见宽度。 - **min-width**:最小可见宽度。 - **max-width**:最大可见宽度 [^2]。 ### 示例代码 以下是一个简单的示例,当屏幕宽度小于等于 1000px 时,将页面背景颜色改为淡绀色: ```css body { background-color: lightpink; /* 浅粉色 */ } .demo { color: white; width: 300px; margin: 20% auto; font-size: 45px; } @media screen and (max-width: 1000px) { body { background-color: #80aa86; /* 淡绀色 */ } } ``` 上述代码中,当屏幕宽度小于等于 1000px 时,`body` 的背景颜色将从浅粉色变为淡绀色 [^4]。 ### IE 浏览器兼容性 在 IE 浏览器中,可能需要使用 `@-ms-viewport` 来解决网页缩放问题。例如: ```css @media (max-width: 1919px) and (min-width: 768px) { html { zoom: 80%; } @-ms-viewport { width: 1920px; } } ``` 上述代码在屏幕宽度在 768px 到 1919px 之间时,将 `html` 元素缩放 80%,并设置 `@-ms-viewport` 的宽度为 1920px [^5]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值