“screen”和“only screen”在媒体查询中有什么区别?

11 浏览
0 Comments

“screen”和“only screen”在媒体查询中有什么区别?

screenonly screen在媒体查询中有什么区别?\n为什么我们需要使用only screenscreen本身不提供足够的信息以仅在屏幕上呈现吗?\n我看到许多响应式网站使用了这三种不同的方式之一:\n

@media screen and (max-width:632px)

\n

@media (max-width:632px)

\n

@media only screen and (max-width:632px)

0
0 Comments

媒体查询是CSS3的一项功能,它允许根据设备的特性和属性来应用不同的样式。在媒体查询中,我们可以使用"screen"和"only screen"来指定样式应用的设备类型。那么,这两者有什么区别呢?

问题的出现是因为有人对于"screen"和"only screen"的区别不是很清楚。通过查阅相关资料和讨论,我们可以找到解决这个问题的方法和答案。

根据提供的代码和讨论的内容,我们可以得出以下结论:

- "screen"是一个媒体类型,用于指定样式适用于所有屏幕设备,包括计算机、手机、平板等。它不会排除任何设备类型。

- "only screen"也是一个媒体类型,但它更加具体和限制。它只适用于屏幕设备,而不包括打印设备或语音设备等其他类型的设备。通过使用"only"关键字,我们可以排除一些不需要样式的设备类型。

所以,使用"screen and (max-width:480px)"的媒体查询将适用于所有屏幕设备,并且屏幕宽度小于或等于480像素的设备将应用指定的样式。而使用"only screen and (max-width: 480px;)"的媒体查询将只适用于屏幕设备,并且排除了一些其他类型的设备。

对于Mobile First方法,我们应该首先编写适用于移动设备的CSS,并使用min-width来针对更大的屏幕设备。在这种情况下,不需要使用"only"关键字,因为我们只关注屏幕设备。

总结起来,"screen"用于适用于所有屏幕设备的样式,而"only screen"用于适用于特定屏幕设备的样式,并排除其他设备类型。通过理解这两者的区别,我们可以更好地应用媒体查询来优化网页样式的展示。

0
0 Comments

"screen"和"only screen"在媒体查询中有什么区别?

媒体查询规范还提供了关键字only,用于隐藏媒体查询对于旧浏览器的影响。和not一样,这个关键字必须在声明的开始位置。例如:

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

不识别媒体查询的浏览器希望看到一个逗号分隔的媒体类型列表,规范中指出它们应该在第一个非字母或数字的字符(不包括连字符)之前截断每个值。所以,一个旧的浏览器应该将上面的例子解释为:

media="only"

因为不存在名为only的媒体类型,所以样式表会被忽略。类似地,旧的浏览器应该将下面的例子解释为:

media="screen"

换句话说,它应该将样式规则应用于所有屏幕设备,即使它不知道媒体查询的含义。

不幸的是,IE 6-8没有正确实现这个规范。

它不是将样式应用于所有屏幕设备,而是完全忽略样式表。

尽管有这种行为,仍然建议在媒体查询前加上only前缀,以便将样式从其他不常见的浏览器中隐藏起来。

所以,在IE6-8中,使用

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

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

将具有相同的效果:都会阻止这些样式被使用。不过,它们仍然会被下载。

在支持CSS3媒体查询的浏览器中,如果视口宽度大于401px并且媒体类型为screen,则这两个版本都会加载样式。

我不确定哪些不支持CSS3媒体查询的浏览器需要使用only版本

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

而不是

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

以确保它不会被解释为

media="screen"

这对于有设备实验室权限的人来说是一个好的测试。

所以,如果我们在CSS文件中谈论媒体查询,我们可以去掉"only",因为旧浏览器根本不理解媒体查询,对吗?

根据我的经验,"only"在塞班操作系统(旧的诺基亚触摸手机)上的表现如预期。我经常使用它,因为这些浏览器对CSS3的支持非常差,但它仍然能够正确处理"only"和媒体查询中的"min/max-width"。

你为什么要支持这么老的设备?真的很好奇。

我过去写的评论是过去时:"我经常使用它" 🙂 在现在,不需要支持这样过时的设备。我只是想说,only screen是有用的,而且实际上是唯一避免因为悲惨的CSS3支持而导致页面破裂的方法。

0
0 Comments

在媒体查询中,“screen”和“only screen”之间有什么区别?

媒体查询是CSS3的一个功能,它允许根据设备的特性应用不同的样式。通过使用媒体查询,可以根据设备的屏幕大小、分辨率、颜色能力等特性,优化网站的显示。

在上述内容中,我们可以看到三个不同的例子,它们都使用了媒体查询来应用不同的样式。下面是对每个例子的解释:

1. (max-width:632px):这个例子表示当窗口的最大宽度小于632px时,应用这些样式。这个例子适用于大多数情况下小于桌面屏幕大小的设备。

2. screen and (max-width:632px):这个例子表示当设备是屏幕(screen)并且窗口的最大宽度小于632px时,应用这些样式。这与上面的例子几乎相同,只是指定了屏幕作为媒体类型,而不是其他可用的媒体类型,最常见的另一个媒体类型是打印(print)。

3. only screen and (max-width:632px):这个例子使用了“only”关键字,它的作用是隐藏样式表,使其不会被旧的浏览器解析。由于没有名为“only”的媒体类型,因此旧的浏览器应该忽略这个样式表。

希望这些解释能对媒体查询有所启发。通过使用媒体查询,可以根据不同的设备特性,为网站提供更好的用户体验。

补充说明:在媒体查询中,除了屏幕(screen)之外,还有其他媒体类型,例如打印(print)、盲文(braille)和语音(speech)。CSS的存在是为了将内容与展示分离,展示不仅仅指屏幕上可见的内容,还包括其他方面的展示方式。

0