为什么在使用媒体查询时需要为最大高度添加额外的像素?
Why do I need to add an extra pixel for a max height when using media queries?
我这里有这个代码 运行,分辨率为 3840x2160,缩放比例为 225%
#d1 {
height: 400px;
width: 275px;
background-color: hotpink;
}
@media (max-height: 850px) {
#d1 {
height: 400px;
width: 275px;
background-color: green;
}
}
@media (max-height: 818px) {
#d1 {
height: 400px;
width: 275px;
background-color: purple;
}
}
<div id="d1"></div>
当我没有打开书签栏时,d1 的背景颜色是 hotpink,但是当我检查 window 高度时它显示 850px,当我打开书签栏时,window 高度为 818px 然后 d1 背景颜色变为绿色。
现在如果我在最大高度上再增加 1 个像素
@media (max-height: 851px) {
#d1 {
height: 400px;
width: 275px;
background-color: green;
}
}
@media (max-height: 819px) {
#d1 {
height: 400px;
width: 275px;
background-color: purple;
}
}
然后当我隐藏书签栏时,背景颜色为绿色,当我显示书签栏时,背景颜色变为紫色。
所以我的问题是,为什么我需要向最大高度添加一个额外的像素才能使其正常工作?
浏览器倾向于...不使用整数。
可能发生的情况是,即使开发工具说您的 window 高 850 像素,它也可能是 850.25 像素高。
因此,由于 850.25px 大于 850px,媒体查询不会触发。
(请记住,由于放大,整个视口被除以 225%,因此数学结果不太可能是整数...)
我这里有这个代码 运行,分辨率为 3840x2160,缩放比例为 225%
#d1 {
height: 400px;
width: 275px;
background-color: hotpink;
}
@media (max-height: 850px) {
#d1 {
height: 400px;
width: 275px;
background-color: green;
}
}
@media (max-height: 818px) {
#d1 {
height: 400px;
width: 275px;
background-color: purple;
}
}
<div id="d1"></div>
当我没有打开书签栏时,d1 的背景颜色是 hotpink,但是当我检查 window 高度时它显示 850px,当我打开书签栏时,window 高度为 818px 然后 d1 背景颜色变为绿色。
现在如果我在最大高度上再增加 1 个像素
@media (max-height: 851px) {
#d1 {
height: 400px;
width: 275px;
background-color: green;
}
}
@media (max-height: 819px) {
#d1 {
height: 400px;
width: 275px;
background-color: purple;
}
}
然后当我隐藏书签栏时,背景颜色为绿色,当我显示书签栏时,背景颜色变为紫色。
所以我的问题是,为什么我需要向最大高度添加一个额外的像素才能使其正常工作?
浏览器倾向于...不使用整数。
可能发生的情况是,即使开发工具说您的 window 高 850 像素,它也可能是 850.25 像素高。
因此,由于 850.25px 大于 850px,媒体查询不会触发。
(请记住,由于放大,整个视口被除以 225%,因此数学结果不太可能是整数...)