Maison > interface Web > tutoriel HTML > Une toute nouvelle connaissance : CSS variable-variable

Une toute nouvelle connaissance : CSS variable-variable

巴扎黑
Libérer: 2017-07-19 09:53:02
original
2384 Les gens l'ont consulté

Les mots précédents

Il n'y a toujours pas eu de variables en CSS. Pour utiliser des variables CSS, vous ne pouvez utiliser que des précompilateurs tels que SASS ou LESS. Avec la sortie de la nouvelle version, définir et utiliser des variables directement en CSS n'est plus un fantasme. Cet article présentera en détail les variables CSS variable

Les variables CSS, comme leur nom l'indique, sont des entités définies par l'auteur ou l'utilisateur de la page Web, utilisées pour spécifier des variables spécifiques dans le document.

Plus précisément, cela devrait être appelé propriétés personnalisées CSS, mais ci-dessous pour une meilleure compréhension, elles sont appelées variables CSS.

Nous avons toujours su qu'il n'y avait pas de variables en CSS. Pour utiliser des variables CSS, vous ne pouvez utiliser que des précompilateurs tels que SASS ou LESS.

Mais après la publication du nouveau brouillon, ce n'est plus un fantasme de définir et d'utiliser des variables directement en CSS, comme suit, regardez un exemple simple :

// Déclarez une variable :

:root{

--bgColor:#000;

}

Ici, nous utilisons la pseudo-classe :root{ } dans l'article précédent "Pseudo-classe structurelle" et définissons une variable CSS dans la pseudo-classe globale :root{ } nommée --bgColor. Une fois

défini, il est utilisé. Supposons que je veuille définir la couleur d'arrière-plan d'un div sur noir :

.main{

<.> background :var(--bgColor);

}

Ici, là où nous devons définir les variables avant de les utiliser, passez var (nom de variable défini) à appeler.

Utilisation de base

Les variables CSS sont des entités définies par les auteurs CSS qui contiennent des valeurs spécifiques à réutiliser dans tout le document. Utilisez des attributs personnalisés pour définir des noms de variables et utilisez un var() spécifique pour accéder à

Compatibilité : les navigateurs mobiles et IE ne sont pas compatibles

【Déclarer les variables】

Les variables doivent démarrer avec

. Par exemple, --example-variable: 20px signifie attribuer 20px à la variable --example-varibale --

Vous pouvez placer l'instruction déclarant la variable dans n'importe quel élément. peut le définir sur : root, body ou html

:root{
  --bgColor:#000;
}
Copier après la connexion
La déclaration de variable est comme l'instruction de déclaration de style ordinaire, ou vous pouvez utiliser le style en ligne

<body style="--bgColor:#000">
Copier après la connexion
L'instruction de déclaration de variable doit être incluse dans un élément et ne peut pas être placée au hasard

//错误
<style>
--bgColor:#000;
</style>
Copier après la connexion
【Utiliser des variables】

Utiliser la fonction var() pour utiliser des variables, et peut être utilisée n'importe où. Par exemple : var(--example-variable) renverra la valeur correspondant à --example-variable

<body style="--bgColor:#000;"><div style="width: 100px;height: 100px;background-color: var(--bgColor)"></div>    </body>
Copier après la connexion


Le var() fonction également Il existe un paramètre facultatif utilisé pour définir la valeur par défaut Lorsque la variable ne peut pas obtenir la valeur, la valeur par défaut est utilisée

<body><div style="width: 100px;height: 100px;background-color: var(--bgColor,pink)"></div>    </body>
Copier après la connexion


Héritage et cascade

Comme les attributs de style ordinaires, les attributs variables prennent également en charge l'héritage et la cascade. Dans l'exemple suivant, la valeur variable de l'élément body est verte et la valeur variable de l'élément div est rouge, selon le principe de la cascade, la couleur d'arrière-plan finale de l'élément div est rouge

<body style="--bgColor:green;"><div style="width: 100px;height: 100px;--bgColor: red;background-color: var(--bgColor,pink)"></div>    </body>
Copier après la connexion


Combinaison et calcul

[Combinaison]

 Les variables CSS peuvent être utilisées en combinaison

<style>.box{--top:20%;--left:30%;width: 100px;height: 100px;background-image: url(img/24/xiaoshu.jpg);background-position: var(--left)  var(--top);}</style><div class="box"></div>
Copier après la connexion

Cependant, les variables CSS ne peuvent pas être combinées sous la forme suivante, var(--color1)var(--color2) n'est pas reconnu par le navigateur, s'il est séparé, tel que var(--color1) var(--color2), est analysé comme #333, qui est également méconnaissable par le navigateur

【 Calcul】
<style>.box{--color1:#;--color2:333;width: 100px;height: 100px;background-color: var(--color1)var(--color2);}</style><div class="box"></div>
Copier après la connexion
Les variables sont les mêmes que les valeurs de style ordinaires, en plus de la combinaison, vous pouvez également utiliser calc pour le calcul

<style>.box{--borderWidth:2px;width: 100px;height: 100px;background-color:lightblue;border-left: calc(var(--borderWidth) * 2) solid black;}</style><div class="box"></div>
Copier après la connexion


JS

Les variables CSS peuvent interagir avec JS. A noter que vous ne pouvez utiliser que les méthodes getPropertyValue() et setProperty(), mais pas l'attribut style

[attribut style]

[ getPropertyValue()]
<div id="box" style="--color:lightgreen;background-color: var(--color)"></div>    <script>  var oBox = document.getElementById('box');
  console.log(oBox.style['--color']);    //undefined</script>
Copier après la connexion

[setProperty()]
<div id="box" style="--color:lightgreen;background-color: var(--color)"></div>    <script>  var oBox = document.getElementById('box');
  console.log(oBox.style.getPropertyValue('--color'));//'lightgreen'</script>
Copier après la connexion

<style>#box{    
    --color:lightgreen;background-color: var(--color);width: 100px;height: 100px;display:inline-block;}</style><button id="btn" type="button">变浅蓝</button><div id="box"></div>    <script>var oBox = document.getElementById('box');var oBtn = document.getElementById('btn');
oBtn.onclick = function(){
    oBox.style.setProperty('--color','lightblue');
}</script>
Copier après la connexion


Non pris en charge

Une chose à noter est que les variables ne sont pas prises en charge ! important

La capture d'écran du navigateur Chrome est la suivante
.box{
    --color:red;
    width: 100px;
    height: 100px;
    background-color:--color !important;
}</style><div class="box"></div>
Copier après la connexion

Objectif

1. Maintenabilité

Maintenir une palette de couleurs ou une palette de tailles dans une page Web signifie que certains styles sont dans le fichier CSS apparaît plusieurs fois et est utilisé à plusieurs reprises. Lors de la modification d'un plan, qu'il s'agisse d'ajuster un certain style ou de modifier complètement l'ensemble du plan, cela deviendra un problème complexe, et une simple recherche et remplacement ne suffit pas. C'est là que les variables CSS s'avèrent utiles

<.>

  2、语义化

  变量的第二个优势就是名称本身就包含了语义的信息。CSS 文件变得易读和理解。main-text-color比文档中的#fc0更容易理解,特别是同样的颜色出现在不同的文件中的时候

  3、更方便的实现@media媒体查询

   一般地,媒体查询如下所示

<style>.box{    
    width: 100px;height: 100px;padding: 20px;margin: 10px;background-color: red}@media screen and (max-width:600px) {.box{
        width: 50px;height: 50px;padding: 10px;margin: 5px;        }}</style><div class="box"></div>
Copier après la connexion

  但是,如果使用变量,则可以精简代码

<style>.box{    
    --base-size:10px;width: calc(var(--base-size) * 10);height: calc(var(--base-size) * 10);padding: calc(var(--base-size) * 2);margin: calc(var(--base-size) * 1);background-color: red;}@media screen and (max-width:600px) {.box{
        --base-size:5px;    }}</style><div class="box"></div>
Copier après la connexion

 

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal