【发布时间】:2021-08-08 14:22:22
【问题描述】:
所以我正在尝试以角度制作响应式调整大小的帖子组件,并尝试更改不同屏幕尺寸的尺寸,例如使帖子在 4k 上看起来更大。
我对此的尝试是原生 css 变量(首先尝试使用 sass 变量,但后来了解到因为它只是一个预处理器,所以它不会是动态的,这完全有意义)。
我有多个针对不同屏幕尺寸的媒体查询,并且我有一个“调整大小变量”,它会根据不同的查询而变化。
使用一个查询,一切都可以正常工作,但是一旦我有第二个查询更改了变量,它似乎不再起作用了吗?
我找不到任何解释这一点的东西,我真的很想了解这一点,所以有人可以向我解释一下吗?
代码(简化):
.post{
--header-height: 100px;
--size-factor: 1;
.posthead{
height: calc(var(--header-height) * var(--size-factor);
.{
img{
max-height: calc(var(--header-height) * var(--size-factor);
max-width: calc(var(--header-height) * var(--size-factor);
}
}
}
// 4K
@media only screen and (min-width: 4092px){
.post{
--size-factor: 2.5;
}
}
// 2K
@media only screen and (min-width: 2560px){
.post{
--size-factor: 1.5;
}
}
当我只有 4k 的查询并在 4k 模式下检查时,一切看起来都很好并且可以调整大小。 但是,一旦我有 2k 查询,两者都不会工作。
注意:
这些值仅用于测试。显然我还没有找到合适的号码。
【问题讨论】:
-
恢复媒体查询的顺序。当您查看 4092px 时,两个媒体查询都匹配,但最后一个获胜(对于级联)。
-
啊我想我明白了——所以媒体查询(也)从上到下使最低的“最强”?那会解释很多。谢谢!
-
这不是媒体查询特有的。这是CSS的C。对具有相同特性的相同元素的所有规则从上到下应用。
-
换句话说,媒体查询不会影响级联——它们是transparent to the cascade。
标签: html css sass media-queries css-variables