我们在写程序的时候经常会用到@media媒体查询,尤其是在做移动端适配的时候。但是关于@media媒体查询你了解多少呢?

作为一个初级开发人员,今天在开发的时候碰到了一个这样的问题:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
.logo {
font-size: 50px
}


@media screen and (max-width: 767px) {
.logo {
font-size: 40px
}
}

@media screen and (max-width: 1024px) {
.logo {
font-size: 60px
}
}

文件是上图这样写的,但是在手机屏幕上实际渲染的字体大小是60px。

很多人可能理所当然的想象自己写在哪个屏幕条件下的样式,就是那个屏幕尺寸下实际的显示效果,但是@media后面跟的条件只是说这些样式在这样的条件下生效,因此如果按上面的代码,三个样式在手机屏幕上是都生效了,因此此时按书写顺序的优先级,最下面的60px覆盖了上面两个样式。

所以正确的写法是:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
.logo {
font-size: 50px
}

@media screen and (max-width: 1024px) {
.logo {
font-size: 60px
}
}

@media screen and (max-width: 767px) {
.logo {
font-size: 40px
}
}

原始样式在最上,屏幕大的在屏幕小的上面。