• CSS变量 var()的用法


    写在前面

    这里介绍一下开发中常用的css变量var(),它可以实现样式的动态设置,使用方法主要分为全局使用和局部使用两种。

    如何定义CSS变量var()
    在CSS文件中,变量需要使用 – 作为前缀来定义,后面跟上变量名和值,如:

    :root {
      --primary-color: #007bff;
    }
    
    • 1
    • 2
    • 3

    上述代码实现了在根元素定义了一个名为--primary-color的样式变量。

    如何使用

    a {
      color: var(--primary-color);
    }
    
    • 1
    • 2
    • 3

    一、全局使用

    当我们设计网站时,经常需要使用相同的颜色、大小、距离等等,这些我们称为“全局变量”。在很多情况下,如果某个全局变量需要修改,我们需要逐一查找和修改每个使用这个变量的地方,这是非常繁琐的,甚至还容易出错。CSS变量 var() 的全局使用方法很好地解决了这个问题。

    项目中,我们往往这样全局var变量:定义一个全局样式文件,在全局样式文件中在根节点配置需要使用的全局样式,然后将全局样式文件导入App.vue或者入口文件main.js中,或者直接在App.vue的样式中配置全局样式。

    如下:
    global.css定义全局样式变量

    :root {
        --primary-color: red;
    }
    
    • 1
    • 2
    • 3

    App.vue中引入全局样式文件global.css

    <template>
        <div id="app">
            ...
            <m-bubble/>
            ...
        </div>
    </template>
    
    <script>
    import m-bubble from '@/components/Bubble.vue';
    export default {
    	compontent: { m-bubble },
        data() {
            return {
            }
        },
    }
    </script>
    
    <style>
    /* 引入全局样式 */
    @import './assets/css/global.css';  
    </style>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23

    Bubble.vue中使用全局样式:

    <template>
        <div class="container">
        </div>
    </template>
    
    <style lang="scss" scoped>
    .container {
    	margin: 100px;
        width: 1000px;
        height: 400px;
        background-color: var(--primary-color);  // 使用样式变量
    }
    </style>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    运行代码可以看到:var(--primary-color)成功生效
    在这里插入图片描述

    二、局部使用

    局部使用需要在需要使用的标签内通过style来定义,如下示例:

    我们在上一节的基础上更改Bubble.vue的代码

    <template>
        <!-- <div class="container" style="--bgc-color: green"> -->
        <!-- 局部定义 -->
        <div class="container" :style="{'--bgc-color': 'green', '--bgc-border': '10px solid red'}">
        </div>
    </template>
    
    <style lang="scss" scoped>
    .container {
        margin: 100px;
        width: 1000px;
        height: 400px;
        background-color: var(--bgc-color);  // 使用变量
        border: var(--bgc-border);  // 使用变量
    }
    </style>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    运行结果如下:可以看到局部样式变量--bgc-border'--bgc-color都生效了。
    在这里插入图片描述

  • 相关阅读:
    朴素贝叶斯算法
    ElementUI入门到入土
    【雅思口语】安娜口语学习记录part2
    Flink提交jar出现错误RestHandlerException: No jobs included in application.
    今 年 测 试 行 业 企 业 招 聘 真 相...
    【Java进阶篇】第六章 IO流
    【科普向】5G核心网架构和关键技术
    学生HTML个人网页作业作品:基于HTML实现教育培训机构网站模板毕业源码(8页)
    (十一)VBA常用基础知识:worksheet的各种操作之sheet删除
    【Redis】深入探索 Redis 集群(Cluster)模式的概念、原理、数据分片算法,基于 Docker 模拟搭建 Redis 集群分布式架构
  • 原文地址:https://blog.csdn.net/weixin_43599321/article/details/133842342