前端之vue样式

绑定样式

在这里插入图片描述

不要自己动用DOM,使用Vue的属性 :class
所以不改变的样式正常写,改变的样式用:class指定一个data变量

class = “” //这是正常使用
:class="表达式" // 会解析该表达式

单个类样式的动态使用 – 字符串写法

用于要绑定的类的名字不确定

  <style>
    /* 类样式 */
    .basic {
      height: 200px;
      width: 600px;
    }

    .happy {
      border: blue solid 2px;
      background-color: red;
    }

    .sad {
      border: yellow solid 2px;
      background-color: greenyellow;
    }

    .normal {
      border: black solid 2px;
      background-color: blue;
    }
  </style>


<body>
  <!-- 容器 -->
  <div id="root">
    <div class="basic" :class="mood" @click="changeMood">{{name}}</div>
  </div>

  <script>
    Vue.config.productionTip = false; // 阻止 Vue 在启动时生成的生产提示
    new Vue({
      el: '#root',
      data() {
        return {
          name: '类样式实例',
          mood: 'normal',
        }
      },

      methods: {
        changeMood() {
          const arr = ['sad', 'normal', 'happy'];
          this.mood = arr[Math.floor(Math.random() * 3)];
        }
      }
    })
  </script>
</body>

多个类样式的动态使用 – 数组写法

用于要绑定的类的名字和个数都不确定

    <div class="basic" :class="fontArr">{{name}}</div>
      data() {
        return {
          name: '类样式实例',
          mood: 'normal',
          fontArr: ['font1', 'font2', 'font3']
        }

补充对数组的操作:

删除添加
列表头shiftushift
列表尾pushpop

对象写法

用于要绑定的类的名字和个数都确定,但是要动态的选择要不要用

    <div class="basic" :class="fontObj">{{name}}</div>
      data() {
        return {
          name: '类样式实例',
          fontObj: {
            font1: true,
            font2: true,
            font3: true
          }
        }
      }

内联style动态绑定样式 – 用对象

<div class="basic" :style="styleObj">{{name}}</div>
 <div class="basic" :style="styleArr">{{name}}</div>

styleObj对象内的属性是已有的样式属性用小驼峰命名格式写的
styleArr数组内是有多个styleObj组成。

在这里插入图片描述
在这里插入图片描述
eg:

<body>
  <!-- 容器 -->
  <div id="root">
    <div class="basic" :style="styleObj">{{name}}</div>
    <div class="basic" :style="styleArr">{{name}}</div>
  </div>

  <script>
    Vue.config.productionTip = false; // 阻止 Vue 在启动时生成的生产提示
    new Vue({
      el: '#root',
      data() {
        return {
          name: '类样式实例',
          styleObj: {
            fontSize: 50 + 'px',
            backgroundColor: 'red',
            color: 'blue'
          },
          styleArr: [{
              fontSize: 50 + 'px',
            },
            {
              backgroundColor: 'red',
            },
            {
              color: 'blue'
            }
          ]
        }
      },
    })
  </script>
</body>

下一节:前端之vue条件渲染、列表渲染

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值