O código mostra 0 e 1, e por que às vezes mostra 2?
Meu navegador é o Microsoft Edge v130, e o Chrome v130 faz o mesmo.
@property --vw {
syntax: "<length>";
inherits: true;
initial-value: 100vw;
}
:root {
--w: mod(tan(atan2(var(--vw), 1px)), 2);
}
body::before {
counter-reset: w var(--w);
content: counter(w);
}
<body></body>
Quando você usa
calc
ou outra função CSS, pode ser difícil ver qual é o valor computado. Se você fizer isso,getComputedStyle(document).getPropertyValue("--w")
você só obtém a fórmula, não o valor.Um truque para ver qual é o valor computado é atribuí-lo a uma propriedade real. Como sua
--w
propriedade não tem uma unidade, você pode atribuí-la a line-height.Agora, você pode ver o valor, que pode ser, por exemplo, 1,99. A
counter-reset
propriedade aceita apenas números inteiros e 2 é "próximo o suficiente".Você pode usar round() para arredondar o número (para cima, para baixo, para o inteiro mais próximo ou para zero):
(Ele
round()
também pode ir para fora domod()
, o que fizer sentido para você)O motivo pelo qual seu código às vezes mostra 2 em vez de 0 ou 1 é devido a números de ponto flutuante. Você pode tentar usar min
ou