CSS 中的媒体查询选择器主要用于根据不同的媒体类型和条件为页面应用不同的样式规则。在这些选择器中,screen 和 only screen 是两种常见的用法,它们在功能上有细微的区别。
screen
媒体类型 screen 是指针对计算机屏幕、平板电脑、智能手机等屏幕设备的样式。当我们使用媒体查询中的 screen 关键字时,意味着所包含的样式只会在媒体类型是屏幕的设备上应用。例如:
@media screen and (max-width: 600px) { body { background-color: lightblue; } }
上面的例子中,背景色 lightblue 只会在设备屏幕宽度小于或等于600像素时应用。
only screen
only screen 关键字的增加是为了防止老旧的浏览器不正确地解释媒体查询。only 关键字用来指定某些样式仅应该被支持媒体查询的浏览器应用,而不是所有设备。在 screen 之前添加 only 关键字,可以防止不支持CSS媒体查询的浏览器将媒体查询内的样式应用于所有媒体类型。
@media only screen and (max-width: 600px) { body { background-color: lightblue; } }
在这个例子中,使用 only screen 相比单独使用 screen,对于现代浏览器来说并没有区别,它们都会将背景色应用在屏幕宽度小于或等于600像素的屏幕上。但对于那些不支持CSS媒体查询的老旧浏览器,则不会应用这个样式规则。
总结来说,screen 和 only screen 的主要区别在于向后兼容性处理。only 的添加是为了确保旧版浏览器不会将样式规则应用于不支持的媒体类型,而现代浏览器则可以忽略 only 关键字,因为它们已经支持媒体查询。随着现代浏览器的普及,这种差异已经变得不那么重要,但在编写代码时仍需考虑到可能的兼容性问题。
