Vue 属性操作 动态样式 动态style样式 Day02

属性操作

属性语法, vue1中: v-bind:属性名="JS代码"

<a v-bind:href="baidu.href">{
   
   {baidu.title}}</a>

vue2语法 :属性名="JS代码"

<a :href="baidu.href">{
   
   {baidu.title}}</a>

注意: 

  1. { { }} : 仅限在 标签内容中使用

  2. : 和不带: 的差异, 不带: 是HTML语法, 值是字符串, 带: 是Vue语法, 值是JS代码, 会运算

<div xx="8+8">1111</div>

<div :xx="8+8">1111</div>

动态样式

点击谁, 谁高亮显示, 先书写HTML 再来书写CSS, 其次就是JS啦

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>动态样式</title>
    <style>
        ul,
        li {
            margin: 0;
            padding: 0;
            list-style-type: none;
        }
        ul {
            display: flex;
            background-color: #002c69;
            padding: 0 40px;
        }
        li {
            color: #fff;
            user-select: none;
            padding: 15px 25px;
            cursor: pointer;
        }
        li.active {
            background-color: orange;
        }
    </style>
</head>
<body>
    <div id="box">
        <h3>当前序号: {
   
   {now}}</h3>
        <ul>
            <li @click="now=0" :class="now==0 ? 'active' : ''">首页</li>
            <li @click="now=1" :class="now==1 ? 'active' : ''">关于净美仕</li>
            <li @click="now=2" :class="{active: now==2}">公司动态</li>
            <li @click="now=3" :class="{active: now==3}">产品中心</li>
            <li @click="now=4" :class="{active: now==4}">联系我们</li>
        </ul>
    </div>

    <script src="./vue.js"></script>
    <script>
        new Vue({
            el: '#box',
            data: {
                now: 0 
            }
        })
    </script>
</body>
</html>

 数据: 保存当前激活的 项目序号, 现在Vue声明一下当前序号, 然后每一个 li 元素绑定点击事件, 添加class 样式就可以了, 简化语法: 本质上 判断now==几, 是真就active 不是就空, :class="{active: now==几}"  , 真就添加active, 假就不添加active

动态style样式

<button @click="size++">变大:{
   
   {size}}</button>
<p :style="`font-size: ${size}px;`">Hello</p>
  • 属性名支持两种写法: 小驼峰 和 蛇形命名法

  • 属性名不允许中划线, 必须用字符串才合法

作者提供了优化语法

<p :style="{fontSize: size+'px'}">World</p>

猜你喜欢

转载自blog.csdn.net/m0_67212141/article/details/128389532
今日推荐