minhas informações de contato
Correspondência[email protected]
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Declarar variáveis - -
Pode ser qualquer valor ouexpressão
--direction: to top;
--gradientColor: deeppink, deepskyblue;
--gradient: to top, deeppink, deepskyblue;
--linear-gradient: linear-gradient(to top, deeppink, deepskyblue);
Os elementos descendentes podem herdar o CSS definido pelos elementos ancestrais inalterados.Propriedades personalizadasvalor.
body {
--color: deepskyblue;
}
.box {
background-color: var(--color);
}
:root {
--borderColor: #ccc;
}
Características das variáveis
Valores de variáveis podem ser passados entre si
body {
--green: #4CAF50;
--successColor: var(--green);
}
variáveis css não podem atribuir valores a si mesmas
/* 这种写法是非法的 */
--primary-color: var(--primary-color, #2a80eb);
variáveis css não podem ser usadas como valor do recurso de mídia @media
:root {
--maxWidth: 640px;
}
/* 不合法,语法无效 */
@media (max-width: var(--maxWidth)) {}
Variáveis CSS como valores de propriedade de conteúdo não têm efeito
/* 无效 */
.bar::before {
content: var(--percent);
}
Use a variável var()
p {
background-color: var(--any-what, deepskyblue);
}
céu profundo é azulValor padrão, use deepskyblue quando –any-what for inválido
body {
--color: 20px;
background-color: deeppink;
background-color: var(--color, deepskyblue);
}
A cor de fundo final do corpo é transparente, porque o valor inicial da cor de fundo é transparente
Contanto que o primeiro valor do parâmetro da função var() seja válido, mesmo que o valor do parâmetro seja uma bagunça, ele ainda será analisado normalmente. Se o valor do primeiro parâmetro for ilegal, a função var() resolve para o valor inicial ou valor herdado da propriedade CSS atual (se houver herança), ou seja, é renderizada de acordo com as regras da palavra-chave global não definida. (Observe que as regras de renderização são semelhantes e não equivalem à definição direta da palavra-chave unset.)
html {
font-size: 14px;
}
body {
--size: 20;
font-size: 16px;
font-size: var(--size)px;
}
O tamanho final da fonte do corpo é 14px
Princípio: Aqui font-size:var(–size)px é equivalente a font-size:20 px Observe que há um espaço após 20, que é um valor de atributo font-size ilegal. Como var(-size)px é gramaticalmente legal, font-size:16px será redefinido e o tamanho da fonte 14px definido pelo elemento pai será eventualmente usado.
O plano de melhoria é:
body {
--size: 20;
font-size: calc(var(--size) * 1px);
}
ou
body {
--size: 20px;
font-size: var(--size);
}
js obtém o valor da variável global CSS
let borderColor= getComputedStyle(document.documentElement).getPropertyValue("--borderColor");
// 获取 --color CSS变量值
var cssVarColor = getComputedStyle(box).getPropertyValue('--color');
// 输出cssVarColor值,结果是deepskyblue
console.log(cssVarColor);
js modifica o valor das variáveis globais CSS
document.documentElement.style.setProperty("--borderColor","green");
js define o valor das variáveis locais CSS
<div id="box">
<img src="1.jpg" style="border: 10px solid var(--color);">
</div>
box.style.setProperty('--color', 'deepskyblue');
Exemplos práticos
/* 有效 */
.bar::before {
counter-reset: progress var(--percent);
content: counter(progress);
}
https://blog.csdn.net/weixin_41192489/article/details/121007837
:root {
--icon-check: url("data:image/svg+xml,%3Csvg viewBox='0 0 32 32'%3E%3Cpath
fill='green' d='M28.027 5.161l-17.017 17.017-7.007-7.007-3.003 3.003 10.010 10.010
20.020-20.020z'%3E%3C/path%3E%3C/svg%3E");
}
.icon-check {
background: var(--icon-check) no-repeat center / 16px;
/* 尺寸限制 */
display: inline-block;
width: 20px; height: 20px;
}
.valid-pass::after {
content: var(--icon-check);
/* 尺寸限制 */
display: inline-block;
width: 20px; height: 20px;
}
Veja o efeito https://demo.cssworld.cn/new/8/1-3.php
Veja o efeito https://demo.cssworld.cn/new/8/1-1.php
button {
/* 这里的空格很重要 */
--open: ;
color: #2a80eb;
-webkit-text-fill-color: #fff;
border-radius: 4px;
padding: 9px 20px;
border: 1px solid var(--open, rgba(0,0,0,.1));
box-shadow: var(--open, inset 0 1px 2px rgba(0,0,0,.1));
background: var(--open, linear-gradient(#0003, transparent)) currentColor;
text-shadow: var(--open, -1px -1px #0003);
transition: .15s;
}
button:active {
/* 任意全局关键字都可以 */
--open: inherit;
}
Princípio de implementação
Há um espaço na frente de –open:;, ou seja, o valor do atributo –open é um espaço, que pode ser sintaticamente válido.Mas os espaços são inválidos para propriedades CSS como box-shadow e background. Portanto, propriedades CSS como box-shadow e background são resolvidas para valores iniciais.
Após clicar no botão para acionar a pseudoclasse :active, a instrução CSS –open:inherit será executada. A palavra-chave CSS global deve ser inválida como um valor de atributo personalizado CSS, portanto a função var() usará o atributo CSS de backup. valor para renderização.
https://blog.csdn.net/weixin_41192489/article/details/121021277
https://blog.csdn.net/weixin_41192489/article/details/121022170