首页 > 其他分享 >Vue学习笔记(七):绑定css样式

Vue学习笔记(七):绑定css样式

时间:2023-10-09 10:35:23浏览次数:25  
标签:Vue border 绑定 class2 class css class1

   

1 绑定class样式

vue为HTML绑定css中的class样式是通过v-bind实现的。

   

1.1 绑定单个class

把需要绑定的样式class名赋值给一遍变量,然后通过变量v-bind绑定class属性,绑定后的class并不会覆盖原来的class属性,而是与原来的class进行叠加。如下所示,div初始时便有一个class1的属性,然后通过v-bind绑定了myclass变量,与时多了一个class2,页面刷新后,div便有了两个class属性:class1和class2;当点击div后,myclass值修改为class3,于是,div的class变成了class1和class3.

<div id="root">
    		<!-- 绑定class样式--字符串写法,适用于:样式的类名不确定,需要动态指定 -->
    		<!-- 这是完整写法
                <div class="class1" v-bind:class="myClass" @click="changeClass"></div>
                下面这个是缩写:
            -->
    		<div class="class1" :class="myClass" @click="changeClass"></div> <br/><br/>

    	</div>
        <style>
.class1{
width:400px;
height:100px;
border:1pxsolidblack;
}

.class2{
border:4pxsolidred;;
background-color:rgba(255,255,0,0.644);
background:linear-gradient(30deg,yellow,pink,orange,yellow);
}
.class3{
border:4pxdashedrgb(2,197,2);
background-color:gray;
}
</style>

        <script type="text/javascript">
            Vue.config.productionTip = false

            const vm = new Vue({
                el:'#root',
                data:{
                    myClass:'class2',
                },
                methods: {
                    changeClass(){
                        this.myClass = 'class3'
                    }
                },
            })
        </script>
   

image.png

   

image.png

   

1.2 同时绑定多个class

(1)数组形式绑定

将所有需要绑定的样式class名称放入一个数组里,通过v-bind绑定数组,即可实现同时绑定多个class:

<div id="root">
    		<!-- 绑定class样式--字符串写法,适用于:样式的类名不确定,需要动态指定 -->
    		<!-- 这是完整写法
                <div class="class1" v-bind:class="myClass"></div>
                下面这个是缩写:
            -->
    		<div class="class0" :class="myClass"></div> <br/><br/>

    	</div>
        <style>
.class0{
width:400px;
height:100px;
border:1pxsolidblack;
}
.class1{
background-color:yellowgreen;
}
.class2{
font-size:30px;
text-shadow:2px2px10pxred;
}
.class3{
border-radius:20px;
}
</style>

        <script type="text/javascript">
            Vue.config.productionTip = false

            const vm = new Vue({
                el:'#root',
                data:{
                    myClass:['class1', 'class2', 'class3'], // 多个class
                }
            })
        </script>
   

image.png

   

**(2)对象形式绑定

<div id="root">
    		<!-- 绑定class样式--字符串写法,适用于:样式的类名不确定,需要动态指定 -->
    		<!-- 这是完整写法
                <div class="class1" v-bind:class="myClass"></div>
                下面这个是缩写:
            -->
    		<div class="class0" :class="myClass"></div> <br/><br/>

    	</div>
        <style>
.class0{
width:400px;
height:100px;
border:1pxsolidblack;
}
.class1{
background-color:yellowgreen;
}
.class2{
font-size:30px;
text-shadow:2px2px10pxred;
}
.class3{
border-radius:20px;
}
</style>

        <script type="text/javascript">
            Vue.config.productionTip = false

            const vm = new Vue({
                el:'#root',
                data:{
                    myClass:{   // 对象形式绑定class,当值为true时,样式生效
    					class1: true,
    					class2: false,
    					class3: true
    				}
                }
            })
        </script>
   

因为class2的value值为false,所以并未板吊顶class2的值:

   

image.png

   

2 绑定style样式

vue也可以直接绑定style样式,此时,将style各样式以对象形式书写,并复制给一个变量,再通过v-bind进行绑定:

<div id="root">
    		<!-- 绑定class样式--字符串写法,适用于:样式的类名不确定,需要动态指定 -->
    		<!-- 这是完整写法
                <div class="class0" v-bind:style="myStyle"></div>
                下面这个是缩写:
            -->
    		<div class="class0" :style="myStyle">vue</div> <br/><br/>

    	</div>
        <style>
.class0{
width:400px;
height:100px;
border:1pxsolidblack;
}
</style>

        <script type="text/javascript">
            Vue.config.productionTip = false

            const vm = new Vue({
                el:'#root',
                data:{
                    myStyle:{   // 绑定样式
    					fontSize: "40px",
    					color: "red"
    				}
                }
            })
        </script>
   

image.png

标签:Vue,border,绑定,class2,class,css,class1
From: https://www.cnblogs.com/chenhuabin/p/17750886.html

相关文章

  • 使用postcss-px-to-viewport实现兼容
    为提高页面的兼容性,可使用postcss-px-to-viewport。1.安装依赖"postcss-px-to-viewport":"^1.1.1"2.在vite.config.js导入importpostcssPxToViewportfrom'postcss-px-to-viewport';3.增加css配置,示例如下returndefineConfig({plugins:[vue(),buildTi......
  • 高效数据传输:Java通过绑定快速将数据导出至Excel
    摘要:本文由葡萄城技术团队于博客园原创并首发。转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具、解决方案和服务,赋能开发者。前言把数据导出至Excel是很常见的需求,而数据的持久化,往往又放在数据库中。因此把数据库中的数据导出到Excel中,成了非常普遍的一个需求......
  • vue项目使用lodash节流防抖函数问题与解决
    背景在lodash函数工具库中,防抖_.debounce和节流_.throttle函数在一些频繁触发的事件中比较常用。防抖函数_.debounce(func,[wait=0],[options=])创建一个debounced(防抖动)函数,该函数会从上一次被调用后,延迟 wait 毫秒后调用 func 方法。参数func (Function):要防抖......
  • vue $refs 获取的结果有时候是数组
    在工作的时候要从接口读取数据,生成一个动态的表单首先做的就是绑定ref然后使用const{proxy}=getCurrentInstance();来读取ref,看了半天数据怎么不对,控制台打印后,发现是一个数组后来观察到只要是使用v-for生成的获取ref时,即使没有重复,结果也是数组,可能是作者在v-for中为了......
  • css - 脱离文档流
    CSSposition定位&z-index层级1.定位position:(1).相对定位relative:元素相对定位:a.相对于元素在文档流中原本的位置定位的b.不脱离文档流c.如果不设置偏移量,元素不会发生任何变化不改变元素性质(块级/内联元素)(2).绝对定位absolute:绝对定位的元素:a.相对于最近开启......
  • 绑定方法和非绑定方法隐藏属性和property装饰器 绑定方法
    绑定方法和非绑定方法隐藏属性和property装饰器绑定方法类中得方法类能来调用,对象也能来调用,就看该方法绑定给谁了,绑定给谁就有谁来调用classStudent():hero_work='射手'def__init__(self,name,speed,hp,atk):self.name=nameself.speed=speed......
  • 类的绑定方法和隐藏属性
    1.绑定方法定义:定义完类之后,可以在类里面写一些方法,在类的外部直接调用类内部的方法不能调用那么,类中得方法到底是使用类调用还是使用对象来调用?类中得方法类能来调用,对象也能来调用,就看该方法绑定给谁了,绑定给谁就有谁来调用#对象的绑定方法:classStudent():schoo......
  • App.vue 的组成部分
    组件化:页面可拆分成一个个组件,每个组件有着独立的结构、样式、行为组件分类:普通组件、根组件根组件:整个应用最上层的组件,包裹所有普通小组件一个根组件 App.vue,包含三个部分 App.vue文件(单文件组件)的三个组成部分:结构、样式、行为结构通过template标签提供,行为通过scr......
  • css
     目录1.介绍css2.CSS语法3.CSS注释4.CSS中的颜色值5.CSS长度单位6.html引入CSS的三种方法  6.1行内样式(内联样式)  6.2 内嵌样式  6.3外部样式7.选择器  7.1标签选择器  7.2类选择器  7.3ID选择器  7.4通配所有元素......
  • Vue工程中 main.js 的作用、npm run serve的执行流程
    1.内容:importVuefrom'vue'   //导入Vue核心包importAppfrom'./App.vue'  //导入App.vue根组件Vue.config.productionTip=false  //提示当前处于什么环境(生产环境/开发环境),fasle是什么提示都没有,改为true才提示,但通常写falsenewVue({   ......