首页 > 其他分享 >12-Vue核心-绑定样式

12-Vue核心-绑定样式

时间:2023-09-19 11:23:51浏览次数:62  
标签:style 12 color 绑定 Vue background border Math

class 与 style 绑定

1)在应用界面中,某个(些)元素的样式是变化的

2)class / style 绑定就是专门用来实现动态样式效果的技术

class 绑定样式

写法:

v-bind:class = "xxx" 或 :class = "xxx" ,xxx 可以是字符串、对象、数组

1)字符串写法适用于:只绑定一个样式,类名不确定,需要动态获取

2)数组写法适用于:要绑定多个样式,个数不确定,名字也不确定

3)对象写法适用于:要绑定多个样式,个数确定,名字也确定,但需要动态确定用不用

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>绑定样式</title>
        <style>
            .basic{
                width: 300px;
                height: 50px;
                border: 1px solid black;
            }
            .happy{
                border: 3px solid red;
                /* rgba() 函数使用红(R)、绿(G)、蓝(B)、透明度(A)的叠加来生成各式各样的颜色 */
                background-color: rgba(255,255,0,0.644);
                /* linear-gradient() 函数用于创建一个表示两种或多种颜色线性渐变的图片 */
                background: linear-gradient(30deg,yellow,pink,orange,yellow);
            }
            .sad{
                border: 4px dashed rgb(2,197,2);
                background-color: skyblue;
            }
            .normal{
                background-color: #bfa;
            }
            .malingshu1{
                background-color: yellowgreen;
            }
            .malingshu2{
                font-size: 20px;
                /* text-shadow 为文字添加阴影 */
                text-shadow: 2px 2px 10px red;
            }
            .malingshu3{
                /* border-radius 设置外边框圆角 */
                border-radius: 20px;
            }
        </style>
        <!--  引入Vue  -->
        <script type="text/javascript" src="../js/vue.js"></script>
    </head>
    <body>
        <!--  准备好一个容器  -->
        <div id="root">
            <!--  绑定class样式  字符串写法,适用于:要绑定的样式个数确定,但类名不确定,需要动态指定  -->
            <!--  需求:点击div,使类名"basic"随机改变为"happy"、"sad"和"normal"其中的一种 -->
            <div class="basic" :class="mood" @click="changeMood">{{name}}</div><br/>

            <!--  绑定class样式  数组写法,适用于:要绑定的样式个数不确定、类名也不确定  -->
            <!--  需求:可以通过Vue动态修改class的类名,["happy","sad","normal"]-->
            <div class="basic" :class="classArr">{{name}}</div><br/>

            <!--  绑定class样式  对象写法,适用于:要绑定的样式个数确定、类名也确定,但要动态决定用不用 -->
            <!--  需求:可以通过Vue动态修改class的类名,带有"malingshu1"和"malingshu2"的组合形式 -->
            <div class="basic" :class="classObj">{{name}}</div><br/>
        </div>

        <script type="text/javascript">
            // 阻止 vue 在启动时生成生产提示
            Vue.config.productionTip = false

            const vm = new Vue({
                el:"#root",
                data(){
                    return{
                        name:"马铃薯",
                        mood:"normal",
                        classArr:["happy","sad","normal"],
                        classObj:{
                            malingshu1:true,
                            malingshu2:false
                        }
                    }
                },
                methods:{
                    changeMood(){
                        const arr = ["happy","sad","normal"]
                        // Math.random():获取[0,1)的随机数
                        // Math.floor() 向下取整  Math.ceil() 向上取整  Math.round() 四舍五入的取整
                        const index = Math.floor(Math.random()*3)
                        this.mood = arr[index]
                    },
                }
            })
        </script>
    </body>
</html>

 

style绑定样式

写法:

1)对象写法:v-bind:style = "{fontSize:xxx}" 或 :style = "{fontSize:xxx}"  ,其中 xxx 是动态值

2)数组写法:v-bind:style = "[a,b]" 或 :style = "[a,b]" ,其中 a、b是样式对象

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>style绑定样式</title>
        <style>
            .basic{
                width: 300px;
                height: 50px;
                border: 1px solid black;
            }
            .happy{
                border: 3px solid red;
                /* rgba() 函数使用红(R)、绿(G)、蓝(B)、透明度(A)的叠加来生成各式各样的颜色 */
                background-color: rgba(255,255,0,0.644);
                /* linear-gradient() 函数用于创建一个表示两种或多种颜色线性渐变的图片 */
                background: linear-gradient(30deg,yellow,pink,orange,yellow);
            }
            .sad{
                border: 4px dashed rgb(2,197,2);
                background-color: skyblue;
            }
            .normal{
                background-color: #bfa;
            }
            .malingshu1{
                background-color: yellowgreen;
            }
            .malingshu2{
                font-size: 20px;
                /* text-shadow 为文字添加阴影 */
                text-shadow: 2px 2px 10px red;
            }
            .malingshu3{
                /* border-radius 设置外边框圆角 */
                border-radius: 20px;
            }
        </style>
        <!--  引入Vue  -->
        <script type="text/javascript" src="../js/vue.js"></script>
    </head>
    <body>
        <!--  准备好一个容器  -->
        <div id="root">
            <!--  绑定style样式  对象写法  -->
            <div class="basic" :style="styleObj">{{name}}</div><br/>

            <!--  绑定style样式  数组写法  -->
            <div class="basic" :style="styleArr">{{name}}</div>
        </div>

        <script type="text/javascript">
            // 阻止 vue 在启动时生成生产提示
            Vue.config.productionTip = false

            const vm = new Vue({
                el:"#root",
                data(){
                    return{
                        name:"马铃薯",
                        mood:"normal",
                        styleObj:{
                            // 属性名不能乱写,一定要是style里面有的
                            backgroundColor: "red",
                            fontSize: "40px",
                            color: "yellow"
                        },
                        styleArr: [
                            {
                                fontSize: "40px",
                                color: "blue"
                            },
                            {
                                backgroundColor: "gray"
                            }
                        ]
                    }
                },
                methods:{
                    changeMood(){
                        const arr = ["happy","sad","normal"]
                        // Math.random():获取[0,1)的随机数
                        // Math.floor() 向下取整  Math.ceil() 向上取整  Math.round() 四舍五入的取整
                        const index = Math.floor(Math.random()*3)
                        this.mood = arr[index]
                    },
                }
            })
        </script>
    </body>
</html>

 



标签:style,12,color,绑定,Vue,background,border,Math
From: https://www.cnblogs.com/REN-Murphy/p/17714144.html

相关文章

  • Vue收集表单数据
    收集表单数据v-model的使用data:{ account:'',//用户输入 password:'', age:'', sex:'',//需要配置 hobby:[], agree:''}若,则v-model收集的是value值,用户输入的就是value值。若,则v-model收集的是value值,需要配置value值。性别:男<inputtype=&qu......
  • CentOS8 ifconfig时显示127.0.0.1问题
    CentOS8ifconfig时ip地址为127.0.0.1参考:https://blog.csdn.net/weixin_43888891/article/details/131893425?spm=1001.2101.3001.6650.3&utm_medium=distribute.pc_relevant.none-task-blog-2~default~YuanLiJiHua~Position-3-131893425-blog-131429967.235^v38^pc_relev......
  • 如何在vuejs项目中使用md5加密密码的实现
    1、NPM安装:npminstall--savejs-md52、全局用法2.1、全局引用importmd5from'js-md5';Vue.prototype.$md5=md5;2.2、全局使用将您需要加密的信息放进去:this.$md5('Thisisencryptedcontent')//6f43dd5db792acb25d6fe32f3dddac703.局部用法在页面中单独使用......
  • vue前端图片上传并显示
    今天完成了vue前端对数据库中图片的显示,并可以对上传的图片添加到数据库中添加修改  数据库信息 ......
  • java基础-Junit 注解 枚举-day12
    目录1.Junit2.注解annotation3.枚举1.Junit白盒测试黑盒测试自行baidu了解java单元测试packagecom.msb01;importorg.junit.After;importorg.junit.Assert;importorg.junit.Before;importorg.junit.Test;/***@Auther:jack.chen*@Date:2023/9/18-0......
  • vue的目录结构和简单的开发流程(只有最简单的一部分)
    通过将Vue挂载到app上,然后再放到div上面 ......
  • Vue-js循环方式、v-model的使用、事件处理、表单控制、购物车案例
    js循环方式在es6语法中:(以后尽量少用var有很多坑)-let:定义变量-const:定义常量1.方式一:for循环,基于索引的循环<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>Title</title><scriptsrc=".......
  • Vue之js循环方式、v-model 的使用、事件处理、表单控制、购物车案例、v-model修饰符
    js循环方式<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>js循环方式</title><scriptsrc="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.4/jquery.js"></sc......
  • vue-dayu03
    js循环方式一:基于索引的循环<script>leti=0for(;i<10;){console.log(i)i++}letgood_list=[1,2,3]for(letj=0;j<good_list.length;j++){console.log(good_list[j])}</script>方式二:in循环  基于迭代的循环,依赖于索引取......
  • 牛客周赛 Round 12 D 小美的区间异或和
    Link首先这个题目的限制卡的很死,最好是O(n)解决,其次当看到异或的时候,就可以考虑按照二进制位进行计算。对于这个题,我们定义\(dp_i\)表示以\(a_i\)为最右端的子区间的答案的和那么首先可以想到,贡献给这个答案的有两个部分,包括\(a_i\)的和不包括的,其中不包括\(a_i\)的部分的答案......