VUE指令-样式绑定v-bind

样式绑定v-bind

操作元素的 class 列表和内联样式是数据绑定的一个常见需求。因为它们都是属性,所以我们可以用 v-bind 处理它们:只需要通过表达式计算出字符串结果即可。不过,字符串拼接麻烦且易错。因此,在将 v-bind 用于 class 和 style 时,Vue.js 做了专门的增强。表达式结果的类型除了字符串之外,还可以是对象或数组。

v-bind:style


<!-- 格式v-bind:style="{ key:value }" -->

<!-- 格式v-bind:style="[dataStyle0,dataStyle1]" -->

<!-- 样式属性不添加‘‘,将缩写为java驼峰命名变量 ‘font-size‘ >>> fontSize -->

<div style="height: 180px;background: #CCC;margin: 5px;">

<div style="font-size: 20px;">

v1.v-bind:style="{ key:value }"</div>

<hr />

<div>

<div v-bind:style="{ color:colorVar , fontSize:fontVar + ‘px‘}">

Name

</div>

<div v-bind:style="[dataStyle0,dataStyle1]">

Name

</div>

</div>

</div>

v-bind:class


<!-- 格式v-bind:class="{ clazzStyle , isBind }" -->

<!-- 格式v-bind:class="clazzObject" ,obj包含需要绑定的样式 -->

<!-- 格式v-bind:class="[clazz0,clazz1]" ,clazz定义在data的样式对象 -->

<div style="height: 150px;background: #CCC;margin: 5px;">

<div style="font-size: 20px;">

v0.v-bind指令示例(class)</div>

<hr />

<div>

<div v-bind:class="{ style0 : isBind ,style1:true}">

Name

</div>

<div v-bind:class="clazzObj">

Name

</div>

<div v-bind:class="cssClazz">

Name

</div>

</div>

</div>

<!DOCTYPE html>
<html style="height: 100%;">

    <head>
        <meta charset="UTF-8">
        <script type="text/javascript" src="../lib/vue.v2.5.12.js" ></script>
        <title>HelloDemo</title>
    </head>

    <body style="height: 100%;">
        <style>
            .style0{
                font-size: 25px;
                color: green;
            }
            .style1{
                background: gold;
            }
        </style>
        <!--
            VUE指令v-bind样式绑定指令

            REF:
                http://www.runoob.com/vue2/vue-class-style.html
                https://cn.vuejs.org/v2/guide/class-and-style.html
        -->
        <div id="appVue">
            <!-- 格式v-bind:class="{ clazzStyle , boolean表达式 }" -->
            <div style="height: 200px;background: #CCC;margin: 5px;">
                <div style="font-size: 20px;">
                    v0.v-bind条件渲染(value,key,index)</div>
                <hr />
                <div>
                    <div v-bind:class="{style0: 5 > 1}">
                        Name
                    </div>
                </div>
            </div>

            <!-- 格式v-bind:style="{ key:value }" -->
            <!-- 格式v-bind:style="[dataStyle0,dataStyle1]" -->
            <!-- 样式属性不添加‘‘,将缩写为java驼峰命名变量 ‘font-size‘ >>> fontSize -->
            <div style="height: 180px;background: #CCC;margin: 5px;">
                <div style="font-size: 20px;">
                    v1.v-bind:style="{ key:value }"</div>
                <hr />
                <div>
                    <div v-bind:style="{ color:colorVar , fontSize:fontVar + ‘px‘}">
                        Name
                    </div>
                    <div v-bind:style="[dataStyle0,dataStyle1]">
                        Name
                    </div>
                </div>
            </div>

            <!-- 格式v-bind:class="{ clazzStyle , isBind }" -->
            <!-- 格式v-bind:class="clazzObject" ,obj包含需要绑定的样式 -->
            <!-- 格式v-bind:class="[clazz0,clazz1]" ,clazz定义在data的样式对象 -->
            <div style="height: 150px;background: #CCC;margin: 5px;">
                <div style="font-size: 20px;">
                    v0.v-bind指令示例(class)</div>
                <hr />
                <div>
                    <div v-bind:class="{ style0 : isBind ,style1:true}">
                        Name
                    </div>
                    <div v-bind:class="clazzObj">
                        Name
                    </div>
                    <div v-bind:class="cssClazz">
                        Name
                    </div>
                </div>
            </div>
        </div>
        <script>
            new Vue({
                    el: "#appVue",
                    data: {
                        cssClazz:‘style1‘,
                        clazzObj:{
                            ‘style0‘:true
                        },
                        colorVar:‘green‘,
                        fontVar:25,
                        isBind:true,
                        dataStyle0:{
                            ‘color‘:‘red‘,
                            ‘font-size‘:‘30px‘
                        },
                        dataStyle1:{
                            fontWeight:‘bold‘
                        }
                    }
                }

            )
        </script>
    </body>
</html>

REF:

http://www.runoob.com/vue2/vue-class-style.html

https://cn.vuejs.org/v2/guide/class-and-style.html

时间: 2024-10-30 15:07:39

VUE指令-样式绑定v-bind的相关文章

vue.js样式绑定

vue.js样式绑定 class 与 style 是 HTML 元素的属性,用于设置元素的样式,我们可以用 v-bind 来设置样式属性. Vue.js v-bind 在处理 class 和 style 时, 专门增强了它.表达式的结果类型除了字符串之外,还可以是对象或数组. class 属性绑定 <!DOCTYPE html> <html> <head> <meta charset='utf-8'> <title>style of vue<

10.Vue.js 样式绑定

Vue.js 样式绑定 Vue.js class class 与 style 是 HTML 元素的属性,用于设置元素的样式,我们可以用 v-bind 来设置样式属性. Vue.js v-bind 在处理 class 和 style 时, 专门增强了它.表达式的结果类型除了字符串之外,还可以是对象或数组. class 属性绑定 我们可以为 v-bind:class 设置一个对象,从而动态的切换 class: 实例中将 isActive 设置为 true 显示了一个绿色的 div 块,如果设置为 f

一起学Vue之样式绑定

在前端开发中,设置元素的 class 列表和内联样式是基本要求.本文主要讲解Vue开发中,样式列表和内联样式的绑定,仅供学习分享使用,如果有不足之处,还请指正. 概述 Vue操作元素的 class 列表和内联样式是数据绑定的一个常见需求.因为它们都是属性,所以我们可以用 v-bind 处理它们:只需要通过表达式计算出字符串结果即可.不过,字符串拼接麻烦且易错.因此,在将 v-bind 用于 class 和 style 时,Vue.js 做了专门的增强.表达式结果的类型除了字符串之外,还可以是对象

Vue基础语法(样式绑定,事件处理,表单,Vue组件)

样式绑定 事件处理 表单 Vue组件 样式绑定 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <script src="https://cdn.bootcss.com/vue/2.6.10/vue.js"></script> <title>vue的样式绑定</title> <style> .a{ /*

Vue中的样式绑定

class样式绑定: <!DOCTYPE html> <html> <head> <title></title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <script src="./vue.js"></script> <!-- <scrip

第三篇:Vue指令

Vue指令 1.文本指令相关 v-*是Vue指令,会被vue解析,v-text="num"中的num是变量(指令是有限的,不可以自定义) v-text是原样输出渲染内容,渲染控制的标签自身内容会被替换掉( 123 会被num替换) v-html可以解析渲染html语法的内容 <div id="app"> <!-- 插值表达式 --> <p>{{ msg }}</p> <!-- eg:原文本会被msg替换 --&g

如何写一个vue指令directive

举个例子 :clickoutside.js const clickoutsideContext = '@@clickoutsideContext'; export default { /* @param el 指令所绑定的元素 @param binding {Object} @param vnode vue编译生成的虚拟节点 */ bind (el, binding, vnode) { const documentHandler = function(e) { console.log(el) c

Vue数据双向绑定原理及简单实现

嘿,Goodgirl and GoodBoy,点进来了就看完点个赞再go. Vue这个框架就不简单介绍了,它最大的特性就是数据的双向绑定以及虚拟dom.核心就是用数据来驱动视图层的改变.先看一段代码. 一.示例 var vm = new Vue({ data: { obj: { a: 1 } }, created: function () { console.log(this.obj); } }); 二.实现原理 vue数据双向绑定是通过数据劫持结合发布者-订阅者模式的方式来实现的. 1)数据劫

vue指令入门

1.  vue属性.事件.内容绑定 1 <div id="dv"> 2 <!-- v-cloak能够解决表达式闪烁问题 3 (当网速较慢时,会先出现{{msg}},当请求完毕后才会将数据替换) --> 4 <p v-cloak>===={{msg}}====</p> 5 <p>========={{msg2}}========</p> 6 <h4 v-text="msg">=====