不一致的 vh 单元行为
Inconsistent vh unit behaviour
我有一个在悬停时出现的伪元素:
height: 0.4vh;
高度不变,只有宽度变了。然而,出于某种原因,在某些情况下,不同伪元素的高度不同(这里的两条较暗的线都有 height: 0.4vh
):
我提出这个 fiddle 来演示,但意识到是否会发生这种怪异现象取决于视口高度:
https://jsfiddle.net/vuw693La/
我在 Chromium 和 Firefox 上遇到了这个问题。我是做错了什么还是没有办法 "pixel perfect" 与 vh
单位?
浏览器渲染有些不精确,尤其是当百分比或视口单位发挥作用时。在这种情况下,我会考虑将这些线的高度与视口相关联是否真的值得。对于大多数屏幕尺寸,它似乎仅限于几个像素的变化;也许要么为它设置一个大小,要么在几个断点处设置静态大小以逐渐扩大它。
.icon_piece::after { height: 1px; }
// tweak breakpoints to whatever works best for your design
@media (min-height: 600px) {
icon_piece::after { height: 2px; }
}
@media (min-height: 900px) {
icon_piece::after { height: 3px; }
}
某些浏览器在使用视口单位时存在不一致,特别是小于 1vw 或 1vh。
我解决这个问题的方法是分配更大的单位(例如将它们乘以 4),然后使用 transform: scale(0.25);
将元素恢复到所需的大小。
这不是一个简单的解决方案,因为您可能必须重新安排代码才能使其正常工作,但我找不到任何其他解决方法。
我有一个在悬停时出现的伪元素:
height: 0.4vh;
高度不变,只有宽度变了。然而,出于某种原因,在某些情况下,不同伪元素的高度不同(这里的两条较暗的线都有 height: 0.4vh
):
我提出这个 fiddle 来演示,但意识到是否会发生这种怪异现象取决于视口高度: https://jsfiddle.net/vuw693La/
我在 Chromium 和 Firefox 上遇到了这个问题。我是做错了什么还是没有办法 "pixel perfect" 与 vh
单位?
浏览器渲染有些不精确,尤其是当百分比或视口单位发挥作用时。在这种情况下,我会考虑将这些线的高度与视口相关联是否真的值得。对于大多数屏幕尺寸,它似乎仅限于几个像素的变化;也许要么为它设置一个大小,要么在几个断点处设置静态大小以逐渐扩大它。
.icon_piece::after { height: 1px; }
// tweak breakpoints to whatever works best for your design
@media (min-height: 600px) {
icon_piece::after { height: 2px; }
}
@media (min-height: 900px) {
icon_piece::after { height: 3px; }
}
某些浏览器在使用视口单位时存在不一致,特别是小于 1vw 或 1vh。
我解决这个问题的方法是分配更大的单位(例如将它们乘以 4),然后使用 transform: scale(0.25);
将元素恢复到所需的大小。
这不是一个简单的解决方案,因为您可能必须重新安排代码才能使其正常工作,但我找不到任何其他解决方法。