【发布时间】:2018-11-23 01:31:23
【问题描述】:
我正在做一个项目,但遇到了问题。 我将通过以下演示示例向您展示:
这是css代码:
*, *::after, *::before {
box-sizing: border-box;
margin: 0;
border: 0;
}
@media only screen and (max-width: 600px) {
div {
background: blue;
}
}
@media only screen and (min-width: 601px) and (max-width: 1000px) {
div {
background: green;
}
}
@media only screen and (min-width: 1001px) {
div {
background: red;
}
}
所以我的 div 应该是:
- 从 0px 到 600px 的蓝色
- 从 601 像素到 1000 像素的绿色
- 红色从 1001px 到 ...
而是:
- 从 0px 到 600px 的蓝色
- 601 像素的白色
- 从 602 像素到 1000 像素的绿色
- 1001 像素的白色
- 红色从 1002px 到 ...
为什么?看来(min-width:) 不包括在内。
所以我尝试了:
*, *::after, *::before {
box-sizing: border-box;
margin: 0;
border: 0;
}
@media only screen and (max-width: 600px) {
div {
background: blue;
}
}
@media only screen and (min-width: 600px) and (max-width: 1000px) {
div {
background: green;
}
}
@media only screen and (min-width: 1000px) {
div {
background: red;
}
}
所以我的 div 应该是:
- 从 0px 到 600px 的蓝色
- 从 601 像素到 1000 像素的绿色
- 红色从 1001px 到 ...
而是:
- 蓝色从 0px 到 599px
- 从 600 像素到 999 像素的绿色
- 红色从 1000px 到 ...
为什么?现在看来(min-width:) 是包容性的。
但如果我尝试:
*, *::after, *::before {
box-sizing: border-box;
margin: 0;
border: 0;
}
@media only screen and (max-width: 601px) {
div {
background: blue;
}
}
@media only screen and (min-width: 601px) and (max-width: 1001px) {
div {
background: green;
}
}
@media only screen and (min-width: 1001px) {
div {
background: red;
}
}
好像(min-width:)又不包容了:
- 蓝色从 0px 到 601px
- 从 602px 到 1001px 的绿色
- 红色从 1002px 到 ...
我很困惑。
【问题讨论】:
-
你用的是什么浏览器?我没有看到您在 Chrome 中测试时描述的行为。您的第一个示例运行良好:jsfiddle.net/wbqexc1h
-
由于媒体查询遵循与其他 CSS 相同的级联规则,因此如果您颠倒声明的顺序,您将获得所需的效果。是的,最小宽度和最大宽度are inclusive
-
@Turnip 所有浏览器...是的,如果您在 jsfiddle 上缓慢更改宽度也会产生效果....非常非常缓慢地尝试
-
我做到了。它对我来说很好。
-
像素宽度不一定是整数值。您所看到的显示为“600px”的屏幕实际上可能是 599.9px 或 600.1px。
标签: html css media-queries