• Vue3 样式绑定


    1.Vue.js class

    class 与 style 是 HTML 元素的属性,用于设置元素的样式,我们可以用 v-bind 来设置样式属性。

    v-bind 在处理 class 和 style 时, 表达式除了可以使用字符串之外,还可以是对象或数组。

    v-bind:class 可以简写为 :class


    2.class 属性绑定

    我们可以为 v-bind:class 设置一个对象,从而动态的切换 class:

    <style>
        .active {
            width: 100px;
            height: 100px;
            background: blueviolet;
        }
    style>
    <body>
    <div id="app">
        <div :class="{'active':isActive}">div>
    div>
    <script>
        const app = {
            data() {
                return {
                    isActive: true
                }
            }
        }
    
        Vue.createApp(app).mount('#app')
    script>
    body>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23

    实例中将 isActive 设置为 true 显示了一个蓝色的 div 块,如果设置为 false 则不显示

    注意:也可以在对象中传入更多属性用来动态切换多个 class,此外,:class 指令也可以与普通的 class 属性共存🎀

    例如:

    <div class="static" :class="{ 'active' : isActive, 'text-danger' : hasError }">div>
    
    • 1

    我们可以把一个数组传给 v-bind:class ,实例如下:

    <div class="static" :class="[activeClass, errorClass]">div>
    
    • 1

    以上实例 div class 渲染结果为:

    <div class="static active text-danger">div>
    
    • 1

    3.Vue.js style(内联样式)

    我们可以在 v-bind:style 直接设置样式,可以简写为 :style

    <div id="app">
        <div :style="{ color: activeColor, fontSize: fontSize + 'px' }">hahahadiv>
    div>
    
    <script>
        const app = {
            data() {
                return {
                    activeColor: 'blue',
                    fontSize: 30
                }
            }
        }
    
        Vue.createApp(app).mount('#app')
    script>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    渲染效果:

    在这里插入图片描述

    v-bind:style 可以使用数组将多个样式对象应用到一个元素上:

    <div id="app">
        <div :style="[baseStyles, overridingStyles]">hahahadiv>
    div>
    <script>
        const app = {
            data() {
                return {
                    baseStyles: {
                        color: 'green',
                        fontSize: '30px'
                    },
                    overridingStyles: {
                        'font-weight': 'bold'
                    }
                }
            }
        }
        Vue.createApp(app).mount('#app')
    script>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

    渲染效果:

    在这里插入图片描述


    4.组件上使用 class 属性

    当你在带有单个根元素的自定义组件上使用 class 属性时,这些 class 将被添加到该元素中。此元素上的现有 class 将不会被覆盖。

    例如:

    <div id="app">
        <dahe class="classC classD">dahe>
    div>
    <script>
        // 创建一个Vue 应用
        const app = Vue.createApp({})
    
        app.component('dahe', {
            template: '

    I like dahe!

    '
    }) app.mount('#app')
    script>
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    渲染结果如下:

    在这里插入图片描述

  • 相关阅读:
    vue3初体验-基于vue3+ant design封装公共弹框
    OpenCV入门8:区域分割和区域生长
    第三章 UI开发的点点滴滴
    k8s pod详细讲解
    【电磁】基于Matlab实现理想圆柱形电流片的精确磁场
    洛谷 P1151 子数整数
    oracle高级—用户操作
    【面经】讲一下你对jvm和jmm的了解
    linux系统部署微服务项目
    【CPP】表达式
  • 原文地址:https://blog.csdn.net/Gherbirthday0916/article/details/128193063