我正在尝试根据不同的屏幕尺寸设置3种不同的徽标尺寸(small
,med
,big
)。这是我的代码:
@media screen and (max-width: 487px) {
.site-header .site-branding {
background-image: url("../images/logo_small.png") !important;
}
}
@media screen and (max-width: 1079px) {
.site-header .site-branding {
background-image: url("../images/logo_med.png") !important;
}
}
@media screen and (min-width: 1080px) {
.site-header .site-branding {
background-image: url("../images/logo_big.png") !important;
}
}
这可以从big
交换到med
,但不会再次从med
交换到small
。为什么呢?
答案 0 :(得分:4)
尝试在第二个媒体查询上使用最小宽度。即使屏幕较小,第二个查询也是如此,最后一个css会获得首选项,因此它会加载第二个查询图像。 进行以下更改。
@media screen and (max-width: 487px) {
.site-header .site-branding {
background-image: url("../images/logo_small.png") !important;
}
}
@media screen and (min-width: 487px) and (max-width: 1079px) {
.site-header .site-branding {
background-image: url("../images/logo_med.png") !important;
}
}
@media screen and (min-width: 1080px) {
.site-header .site-branding {
background-image: url("../images/logo_big.png") !important;
}
}
答案 1 :(得分:1)
您可以这样订购:
@media screen and (min-width: 1080px) {
.site-header .site-branding {
background-image: url("../images/logo_big.png") !important;
background: blue;
}
}
@media screen and (max-width: 1079px) {
.site-header .site-branding {
background-image: url("../images/logo_med.png") !important;
background: green;
}
}
@media screen and (max-width: 487px) {
.site-header .site-branding {
background-image: url("../images/logo_small.png") !important;
background: red;
}
}
答案 2 :(得分:1)
请参阅' Overriding'下的http://css-tricks.com/logic-in-media-queries/。
我认为正在发生的事情是第一和第二媒体查询都是真的,所以第二个是覆盖第一个;因此,永远不会达到切换到小的程度。
解决方案:将第一个媒体查询移动到最后一个...应该修复它并相应地进行调整。