美文网首页
css变量使用var

css变量使用var

作者: 大兵_HERG | 来源:发表于2019-08-21 10:32 被阅读0次

CSS变量(CSS Variables/Custom Properties)

(1)变量属性的定义
在一个类选择器下,使用”–”加上变量名,就可以定义一个CSS变量属性。

.container{
    --mainColor: #dd3333;
    --mainBgColor: #eeeeee;
    --mainLightColor: #ffffff;
    --mainFontColor: #444444;
    --mainBorder: 1px solid #dddddd;
    --mainBlankSize: 5px;
}

(2)CSS变量的使用
使用CSS变量只需要在属性值中使用val()函数把变量名传入即可。

.container p{
    color: var(--mainFontColor);
    margin: var(--mainBlankSize);
}
.container section{
    border: var(--mainBorder);
}

变量作用域及变量继承

CSS变量有作用域范围的概念,上面的例子中,CSS变量是定义在类选择器.container中的,所以,作用域范围仅限》于.container》这个类下面的标签。如果要创建全局的CSS变量,可以使用关键字“:root”,在“:root”下创建的CSS变量将可应用到全局中。如:

:root{
    --mainColor: #dd3333;
    --mainBgColor: #eeeeee;
    --mainLightColor: #ffffff;
    --mainFontColor: #444444;
    --mainBorder: 1px solid #dddddd;
    --mainBlankSize: 5px;
}

另外,CSS变量也有变量继承的概念,在一个父类中创建的变量作用域,在其子类中如果有创建相同名称的变量,则在子类选择器下,子类的变量会覆盖父类的变量,因此会以子类创建的CSS变量为准;如果子类中没有相同的变量,则会继承父类的变量设置。如:

<div class="container">
    <h2>CSS Variables</h2>
    <div class="box1">
        <p>这是内容1</p>
    </div>
    <div class="box2">
        <p>这是内容2</p>
    </div
:root{
    --mainColor: #dd3333;
    --mainBgColor: #eeeeee;
    --mainLightColor: #ffffff;
    --mainFontColor: #444444;
    --mainBorder: 1px solid #dddddd;
    --mainBlankSize: 5px;
}
.container{
    color: var(--mainFontColor);
}
.box1{
    --mainFontColor: #dd3333;
}
.box1 p, .box2 p{
    color: var(--mainFontColor);
}

上面的例子中,h2标签的文本和box2下面文本颜色都是#444444,因为它们都继承了全局:root的变量属性,而box1下自定义了相同名称的变量属性,覆盖了全局变量属性,因此,box1下的文本颜色将是#dd3333。

默认参数(样式)

上面在提到使用CSS变量的时候是使用var()函数,在使用var()函数获取变量属性值的时候,也可以传递一个参数,当获取的变量属性值不存在的时候,则将CSS样式设置为这个会传入的属性值。如我们在上面的例子中稍微改一下(只改变box1和box2的样式设置):

.box1 p{
    color: var(--mainFontColor);
}
.box2 p{
    color: var(--boxFontColor, #0a8acd);
}

使用实例

<!doctype html>
<html>
<head>
    <meta charset="utf-8">
    <meta http-equiv="x-ua-compatible" content="ie=edge">
    <title>CSS Variables</title>
    <meta name="viewport" content="width=device-width, initial-scale=1">
<s tyle>
    *{margin: 0; padding: 0; box-sizing: border-box;}
    h1{text-align: center;}
    section{
        width: 80%;
        margin: 10px auto;
        padding: var(--mainBlankSize);
        min-height: 100px;
    }
    .container{
    }
    /*全局变量作用域*/
    :root{
        --mainColor: #dd3333;
        --mainBgColor: #eeeeee;
        --mainLightColor: #ffffff;
        --mainFontColor: #444444;
        --mainBorder: 1px solid #dddddd;
        --mainBlankSize: 5px;
    }
    /*局部变量作用域*/
    .greenTheme{
        --themeColor: #75af11;
        border: var(--mainBorder);
        border-color: var(--themeColor);
        --mainFontColor: #0a0acd;
    }
    .blueTheme{
        --themeColor: #0a8acd;
        border: var(--mainBorder);
        border-color: var(--themeColor);
    }
    section h2{
        text-align: center;
        border-bottom: 1px solid var(--mainColor);
        color: var(--mainFontColor);
    }
    section h2 span{
        display: inline-block;
        background-color: var(--themeColor);
        color: var(--mainLightColor);
        padding: 0 var(--mainBlankSize);
    }
    section p{
        color: var(--sectionColor, #8e1296);
    }
</style>
</head>
<body>
    <h1>CSS Variables</h1>
    <div class="container">
        <section class="greenTheme">
            <h2><span>绿色</span>内容区域</h2>
            <p class="">内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容</p>
            <div>
                <h3>一些其他的东西</h3>
            </div>
        </section>

        <section class="blueTheme">
            <h2><span>蓝色</span>内容区域</h2>
            <p class="">内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容</p>
        </section>
        
    </div>
</body>
</html>

相关文章

  • 如何用纯css给网页实现夜间模式(译)

    1、css变量 可以使用css变量,然后使用var()方法使用变量 var方法支持第二个参数作为回调 我们还可以嵌...

  • 小程序中使用全局样式

    css 自定义属性 1.语法 --*来声明变量名 var(--*)来使用变量 css 自定义属性使用中,var()...

  • css变量使用var

    CSS变量(CSS Variables/Custom Properties) (1)变量属性的定义在一个类选择器下...

  • 动态控制伪类样式

    React 传入变量1: ‘–color’ React 传入变量2: ‘–colorArr’ css 使用var(...

  • css变量的用法

    css3提供了变量var()可以很方便的进行样式的切换以及复用,使用方法var(变量名),声明变量:--变量名:变...

  • 2021-08-11 Vue 利用css的var() 和attr

    vue绑定style直接给css的var变量传递一个值,然后结合css的var()函数使用这个值。 在data里面...

  • css开发中遇到的问题总结

    1、css定义变量 --color-text:#66 使用方法 color:var(--color-text)让...

  • AWK传参

    "''$var'" '"$var"' export变量,使用ENVIRON["var"]形式,获取环境变量的值 a...

  • 03 CSS Variables

    效果 Demo Github 知识点 :root CSS变量:var(--xxx) CSS滤镜:filter 事...

  • CSS变量

    关键词:变量 不仅sass,less等可以使用变量,原生的css也是支持变量的,不知道大家有没有用过 语法:var...

网友评论

      本文标题:css变量使用var

      本文链接:https://www.haomeiwen.com/subject/ewxbsctx.html