zoukankan      html  css  js  c++  java
  • 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>
  • 相关阅读:
    MSMQ实现自定义序列化存储
    流程部署的查询、删除、流程
    使用trello管理你的项目
    CentOS 6.4 编译安装 gcc 4.8.1
    jquery实现无限滚动瀑布流实现原理
    系统分析员备考之经济管理篇(二)
    架构、架构师和架构设计
    ASP.net Web API综合示例
    c中函数参数传递
    准备抽象NHibernate和EntityFramework
  • 原文地址:https://www.cnblogs.com/ellen-mylife/p/14071217.html
Copyright © 2011-2022 走看看