• 5Vue样式绑定


    通过数据改变样式

    点击文字切换颜色

    1.v-bind:class

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <script src="./vue.js"></script>
        <title>Vue中的样式绑定</title>
    </head>
    <style>
        .activated{
            color: blueviolet;
        }
    </style>
    <body>
        <!-- 这个元素有一个class样式,叫做 activated,是否使用activated取决于isActivated-->
        <div id="app"
            @click="handleDivClick"
            :class="{activated:isActivated}"
        >颜色</div>
        
    </body>
    <script>
        var vm=new Vue({
            el:"#app",
            data:{
                isActivated:false
            },
            methods:{
                handleDivClick:function(){
                    this.isActivated=!this.isActivated
                }
            }
        })
    </script>
    </html>

    点击后=>

    2.v-bind:class数组形式

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <script src="./vue.js"></script>
        <title>Vue中的样式绑定</title>
    </head>
    <style>
        .activated{
            color: red;
        }
    </style>
    <body>
        <!-- 这个元素有一个class样式,class可以和数组进行绑定,class的样式取决于className的内容,className可以在vue实例中进行赋值或改变-->
        <div id="app"
            @click="handleDivClick"
            :class="[className]"
        >颜色</div>
        
    </body>
    <script>
        var vm=new Vue({
            el:"#app",
            data:{
                isActivated:false,
                className:""
            },
            methods:{
                handleDivClick:function(){
                    this.className=this.className==="activated"?"":"activated";
                }
            }
        })
    </script>
    </html>

    数组中可以有多个值。

    点击后=>

    3.

     也可以对style进行绑定,如下:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <script src="./vue.js"></script>
        <title>Vue中的样式绑定</title>
    </head>
    <body>
        <div id="app"
            @click="handleDivClick"
            :style="styleObj"
        >颜色</div>
        
    </body>
    <script>
        var vm=new Vue({
            el:"#app",
            data:{
                styleObj:{
                    color:'black'
                }
            },
            methods:{
                handleDivClick:function(){
                    this.styleObj.color=this.styleObj.color==='black'?'blue':'black';
                }
            }
        })
    </script>
    </html>

    点击后=》

    4.style也可以使用数组

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <script src="./vue.js"></script>
        <title>Vue中的样式绑定</title>
    </head>
    <body>
        <div id="app"
            @click="handleDivClick"
            :style="[styleObj,{fontSize:'20px'}]"
        >颜色</div>
        
    </body>
    <script>
        var vm=new Vue({
            el:"#app",
            data:{
                styleObj:{
                    color:'black'
                }
            },
            methods:{
                handleDivClick:function(){
                    this.styleObj.color=this.styleObj.color==='black'?'blue':'black';
                }
            }
        })
    </script>
    </html>

     :style对象语法十分直观——看着非常像 CSS,但其实是一个 JavaScript 对象。CSS property 名可以用驼峰式 (camelCase) 或短横线分隔 (kebab-case,记得用引号括起来) 来命名

     样式绑定有两种方法,1.class ; 2.style。他们都可以通过数据来实现切换,同样也都可以通过数组进行绑定。

    5.在数组中还可以进行条件切换

    <div v-bind:class="[isActive ? activeClass : '', errorClass]"></div>

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

    在组件中使用

    当在一个自定义组件上使用 class property 时,这些 class 将被添加到该组件的根元素上面。这个元素上已经存在的 class 不会被覆盖。

    例如,如果你声明了这个组件:

    Vue.component('my-component', {
      template: '<p class="foo bar">Hi</p>'
    })

    然后在使用它的时候添加一些 class:

    <my-component class="baz boo"></my-component>

    HTML 将被渲染为:

    <p class="foo bar baz boo">Hi</p>

    对于带数据绑定 class 也同样适用:

    <my-component v-bind:class="{ active: isActive }"></my-component>

    当 isActive 为 truthy[1] 时,HTML 将被渲染成为:

    <p class="foo bar active">Hi</p>
  • 相关阅读:
    Tensorflow CIFAR10 (二分类)
    2018年阿里巴巴重要开源项目汇总
    环境变量备份
    ubuntu Qt5 librealsense opencv
    ubuntu16.04 qt opencv3.4
    时间作为文件名
    ubuntu16.04 安装opencv3
    Visual studio 2015/2017 opencv3.4 kineck2.0 osg realsense配置
    开源监控系统整合Nagios+Cacti+Nconf详解
    nagios系列(八)之nagios通过nsclient监控windows主机
  • 原文地址:https://www.cnblogs.com/ellen-mylife/p/14071217.html
Copyright © 2020-2023  润新知