Vue2动态绑定style

简介: 从基础到实战,我们一环都不要少!

动态绑定 style

写法:

:style="{fontSize: xxx}"其中xxx是动态值。

:style="[a,b]"其中a、b是样式对象。

有三种动态绑定的写法

完整代码示例

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style></style>
    <script src="./vue.js"></script>
</head>

<body>
    <div id="app">
        <div style="width: 100px;height: 100px; border: solid 1px pink"> 固定 </div>
        <!-- 1. 动态绑定style,值为一个对象 -->
        <div :style="{
      
      width:w,height:h,border:borderHave}"> 动态绑定style 1 </div>
        <!-- 2. 动态绑定style,值为一个变量 -->
        <div :style="boxStyle"> 动态绑定style 2 </div>
        <!-- 3. 数组语法可放多个对象 -->
        <div :style="[boxStyle,base]"> 动态绑定style 3 </div>
    </div>
    <script>
        let app = new Vue({
    
    
            el: "#app",
            data: {
    
    
                w: "100px",
                h: "100px",
                borderHave: "3px solid pink",
                boxStyle: {
    
    
                    width: "100px",
                    height: "100px",
                    border: "1px solid blue"
                },
                base: {
    
    
                    color: "#fff",
                    backgroundColor: "#f00"
                }
            }
        })
    </script>
</body>

</html>

效果图例

image.png

用法:


<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>动态绑定内联样式示例</title>
    <style>
        .text-input {
    
    
            padding: 10px;
            font-size: 16px;
            border: 1px solid #ccc;
            width: 200px;
        }
    </style>
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
</head>

<body>
    <div id="app">
        <input type="text" class="text-input" v-model="inputText" :style="{
      
       backgroundColor: inputBackgroundColor, fontSize: inputFontSize + 'px' }">
    </div>
    <script>
        let app = new Vue({
    
    
            el: "#app",
            data: {
    
    
                inputText: '',
                inputBackgroundColor: '',
                inputFontSize: 16
            },
            watch: {
    
    
                inputText(newVal) {
    
    
                    // 根据输入文本的长度设置背景颜色和字体大小
                    if (newVal.length < 5) {
    
    
                        this.inputBackgroundColor = 'lightgreen';
                        this.inputFontSize = 16;
                    } else if (newVal.length >= 5 && newVal.length < 10) {
    
    
                        this.inputBackgroundColor = 'lightblue';
                        this.inputFontSize = 18;
                    } else {
    
    
                        this.inputBackgroundColor = 'lightpink';
                        this.inputFontSize = 20;
                    }
                }
            }
        })
    </script>
</body>

</html>

我们使用Vue框架来创建一个Vue实例,并将其绑定到id为"app"的元素上。在数据中,我们定义了inputText、inputBackgroundColor和inputFontSize这三个变量,分别控制输入文本、背景颜色和字体大小。

在输入框上使用了:style指令来动态绑定内联样式。通过绑定的对象来设置样式的属性。在watch选项中监听inputText的变化,根据输入文本的长度来动态改变背景颜色和字体大小。

目录
相关文章
Element UI之el-tabs的样式修改字体颜色、下划线、选中/未选中
Element UI之el-tabs的样式修改字体颜色、下划线、选中/未选中
3362 0
|
4月前
|
XML 数据格式
一键修改手机型号,序列号修改器, 免root改手机机型【串号imei机型sn码】
这个Xposed模块实现了设备串号和型号的修改功能,包含主模块类
|
11月前
|
前端开发
|
12月前
|
JavaScript 前端开发 开发者
如何在 VSCode 中使用 ESLint 和 Prettier 检查并自动格式化 Vue.js 代码,提升团队协作效率和代码质量。
【10月更文挑战第9天】随着前端开发技术的发展,代码规范和格式化工具变得至关重要。本文介绍如何在 VSCode 中使用 ESLint 和 Prettier 检查并自动格式化 Vue.js 代码,提升团队协作效率和代码质量。通过安装插件、配置 ESLint 和 Prettier,以及设置 VSCode,实现代码实时检查和格式化,确保代码风格一致。
1897 2
|
JavaScript
基于Vue2或Vue3实现任意上下左右拖拽悬浮的元素,且配置为自定义的全局指令
这篇文章介绍了如何在Vue 2或Vue 3项目中实现一个自定义的全局指令`v-dragSwitch`,用于创建可以任意方向拖拽并悬浮的元素,同时包含边界处理的逻辑。
3575 2
基于Vue2或Vue3实现任意上下左右拖拽悬浮的元素,且配置为自定义的全局指令
|
JavaScript
vue父子组件传值,父组件内容更新子组件内容不实时更新
vue父子组件传值,父组件内容更新子组件内容不实时更新
3677 0
|
消息中间件 关系型数据库 MySQL
消息中间件系列教程(05) -RabbitMQ -管理控制台的使用
消息中间件系列教程(05) -RabbitMQ -管理控制台的使用
338 1
|
Dart JavaScript 前端开发
npm install node-sass 安装失败的解决方案:利用国内镜像加速安装
npm install node-sass 安装失败的解决方案:利用国内镜像加速安装
6050 1
echarts柱状图实现颜色渐变效果
echarts柱状图实现颜色渐变效果
810 1
|
前端开发
了解 css中 backface-visibility 属性
了解 css中 backface-visibility 属性
176 0