Class 与 Style 绑定

绑定 HTML Class

1.对象语法

<div id="app">
        <div class="static" v-bind:class="{ active: isActive, 'text': hasError }">
        </div>
    </div>
    <script>
        var vm = new Vue({
            el: '#app',
            data: {
                isActive: true,
                hasError: true
            }

绑定的数据对象可以不用内联定义在模板里,可以如下定义:

 <div id="app">
        <div class="static" v-bind:class="classObject">
        </div>
    </div>
    <script>
        var vm = new Vue({
            el: '#app',
            data: {
                classObject:{
                    active: true,
                    'text-danger': true
                }
                
            }
        })
    </script>

2.数组语法
我们可以把一个数组传给 v-bind:class,以应用一个 class 列表:

    <div id="app">
        <div v-bind:class="[activeClass, errorClass]"></div>
    </div>
    <script>
        var vm = new Vue({
            el: '#app',
            data: {
                activeClass: 'active',
                errorClass: 'text-danger'
            }
        })
    </script>

3.用在组件上

    <div id="app">
        <my-component class="baz boo"></my-component>
    </div>
    <script>
        Vue.component('my-component', {
            template: '<p class="foo bar">Hi</p>'
        })
        var vm = new Vue({
            el: '#app',
            
        })
    </script>

绑定内联样式

1.对象语法
v-bind:style 的对象语法十分直观——看着非常像 CSS,但其实是一个 JavaScript 对象。

    <div id="app">
        <div v-bind:style="{ color: activeColor, fontSize: fontSize + 'px' }">hi</div>
    </div>
    <script>

        var vm = new Vue({
            el: '#app',
            data: {
                activeColor: 'red',
                fontSize: 30
            }
        })
    </script>

直接绑定到一个样式对象通常更好,这会让模板更清晰:

    <div id="app">
        <div v-bind:style="styleObject">hello</div>
    </div>
    <script>
        var vm = new Vue({
            el: '#app',
            data: {
                styleObject: {
                    color: 'red',
                    fontSize: '13px'
                }
            }
        })
    </script>

2.数组语法
v-bind:style 的数组语法可以将多个样式对象应用到同一个元素上:

<div v-bind:style="[baseStyles, overridingStyles]"></div>

3.自动添加前缀
v-bind:style 使用需要添加浏览器引擎前缀的 CSS 属性时,如 transform,Vue.js 会自动侦测并添加相应的前缀。


qfstudy
149 声望4 粉丝

« 上一篇
亲密字符串
下一篇 »
Vue学习笔记4