为了账号安全,请及时绑定邮箱和手机立即绑定

关于only在支持media type浏览器中的意义

;表示不支持媒体特性但又支持媒体类型的设备,这样就会不读样式,因为其先会读取only而不是screen; 这句话怎么理解?网上找了一圈也没有解释清除,only在支持media type的浏览器时的作用。

正在回答

3 回答

https://stackoverflow.com/questions/8549529/what-is-the-difference-between-screen-and-only-screen-in-media-queries/

我看了下一篇老外的讲解,链接在上面,第二条回答就是,感兴趣的可以去看看。

假如有如下代码

media="screen and (min-width: 401px) and (max-width: 600px)"

在老版本浏览器只会被翻译成 

media="screen"

而不会去识别后面的 (min-width: 401px) and (max-width: 600px),所以说只要是screen媒体,不管宽度多宽,该样式表都会被渲染。

而假如加了only关键字的话,例如如下代码

media="only screen and (min-width: 401px) and (max-width: 600px)"

则会被翻译成

media="only"

 因为并没有什么媒体类型是"only",所以浏览器也不会去渲染后面的样式表。


所以说白了,就是对于老版本浏览器,把这条样式表隐藏掉,仅此而已。


W3C对这个关键字的解释如下(虽然我看不懂):

The keyword ‘only’ can also be used to hide style sheets from older user agents. User agents must process media queries starting with ‘only’ as if the ‘only’ keyword was not present.

0 回复 有任何疑惑可以回复我~

前面没有解释过什么是媒体特性、媒体类型和媒体查询吧?一脸懵逼


0 回复 有任何疑惑可以回复我~
#1

慕雪3362504

https://www.cnblogs.com/august-8/p/4537685.html 可以看下这个
2019-07-24 回复 有任何疑惑可以回复我~

作用就一个,就是忽略

比如写了一个样式里面有下面两条

@media only screen and (min-width:240px){body{background:red !important;}}

body{background:green;}

上面两条命令很简单,第一条当设备屏幕宽度大于240px时背景为红色,第二条背景为绿色

假设设备屏幕宽度为320px,如果设备支持媒体特性时,它的背景会显示为红色,如果设备不支持媒体特性但支持媒体类型时,此时它的背景会显示为绿色,即即使满足宽度大于240px但不支持媒体查询,所以不会应用媒体查询内部样式

0 回复 有任何疑惑可以回复我~
#1

风起临冬

所有only的意思是,只有同时满足媒体查询和宽度大于240,背景才为红色?那么如果我不加only,不支持媒体查询的设备依然会是背景红色吗
2018-08-10 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
十天精通CSS3
  • 参与学习       242037    人
  • 解答问题       2623    个

本课程为CSS3入门教程,深刻详解CSS3知识让网页穿上绚丽装备

进入课程

关于only在支持media type浏览器中的意义

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信