操作样式

1、控制标签style样式

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        body {
            font-size: 14px;
        }

        table, tr, th, td {
            border: 1px solid red;
            border-collapse: collapse; /* 合并边框 */
        }

        th, td {
            width: 200px;
            text-align: center; /* 文本水平居中 */
            height: 30px;
            line-height: 30px;
        }

        input {
            width: 80px;
        }
    </style>
    <script src="https://cdn.bootcdn.net/ajax/libs/vue/2.6.13/vue.js"></script>
</head>
<body>

<div id="app">
<!--    格式1:值是json对象,对象写在元素的:style属性中-->
    <div class="c1" :style="{color: activeColor, fontSize: activeSize + 'px' }">yuan</div>
<!--格式2:值是对象变量名,对象在data中进行声明-->
    <div class="c1" :style="styObj">yuan</div>
<!-- 值是数组-->
    <div class="c1" :style="[styObj1, styObj2]">yuan</div>
</div>
<script>
    const vm = new Vue({
        el: "#app",
        data() {
            return {
             activeColor: 'red',
             activeSize: 30,
             styObj:{
                 color: 'blue',
                 fontSize: "30px",
             },

             styObj1:{
                 color: 'green',
                 fontSize: "30px",
             },
             styObj2:{
                backgroundColor:"lightgray"
             },

            }
        },

    })
</script>

</body>
</html>

  

2、控制标签的class类名

操作样式,本质就是属性操作,使用冒号:

格式:
   <h1 :class="值">元素</h1>  值可以是字符串、对象、对象名、数组

  

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="https://cdn.bootcdn.net/ajax/libs/vue/2.6.13/vue.js"></script>
    <style>
        .c1 {
            color: red;
            border: 1px solid #000;
        }

        .c2 {
            background-color: orange;
            font-size: 32px;
        }

        .c3 {
            color: white;
            background-color: rebeccapurple;
        }

        .c4 {
            font-size: 30px;
            color: green;
        }

        .c5 {
            border: 1px solid darkred;
        }
    </style>
</head>
<body>
<div id="app">
    <div class="box1">
        <!--- 添加class类名,值是一个对象
            {
             class类1:布尔值变量1,
             class类2:布尔值变量2,
            }
        -->
        <p :class="{c1:hasC1}">一个段落</p>
        <p @click="hasC3=!hasC3" :class="{c2:hasC2,c3:hasC3}">一个段落</p>
    </div>


    <div class="box2">
        <!-- 上面的代码可以:class的值保存到data里面的一个变量,然后使用该变量作为:class的值 -->
        <p :class="myCls">第二个段落</p>
    </div>

    <div class="box3">

        <!-- 批量给元素增加多个class样式类 -->
        <p :class="[myCls1,myCls2]">第三个段落</p>
    </div>

</div>
<script>
    let vm1 = new Vue({
        el: "#app",
        data: {
            hasC1: true, // 布尔值变量如果是false,则不会添加对象的属性名作为样式
            hasC2: true,  // 布尔值变量如果是true,则不会添加对象的属性名作为样式
            hasC3: false,
            myCls: {
                c4: true,
                c5: true
            },
            myCls1: {
                c4: true
            },
            myCls2: {
                c5: true
            },
        },
    })
</script>


</body>
</html>

操作样式

 

 

3、示例:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>

    <style>

        * {
            margin: 0;
            padding: 0;
        }

        .tab {
            width: 800px;
            height: 300px;
            /*border: 1px solid rebeccapurple;*/
            margin: 200px auto;
        }

        .tab ul {
            list-style: none;
        }

        .tab ul li {
            display: inline-block;
        }

        .tab_title {
            background-color: #f7f7f7;
            border: 1px solid #eee;
            border-bottom: 1px solid #e4393c;
        }

        .tab .tab_title li {
            padding: 10px 25px;
            font-size: 14px;
        }

        .tab .tab_title li.current {
            background-color: #e4393c;
            color: #fff;
            cursor: default;
        }

        .tab_con li.hide {
            display: none;
        }

    </style>

    <script src="https://cdn.bootcdn.net/ajax/libs/vue/2.6.13/vue.js"></script>
</head>
<body>

<div class="tab">
    <ul class="tab_title">
        <li @click="tab(0)" :class="{current:TabNum==0}">商品介绍</li>
        <li @click="tab(1)" :class="{current:TabNum==1}">规格与包装</li>
        <li @click="tab(2)" :class="{current:TabNum==2}">售后保障</li>
        <li @click="tab(3)" :class="{current:TabNum==3}">商品评论</li>
    </ul>

    <ul class="tab_con">
        <li :class="{hide:TabNum!=0}">商品介绍...</li>
        <li :class="{hide:TabNum!=1}">规格与包装...</li>
        <li :class="{hide:TabNum!=2}">售后保障...</li>
        <li :class="{hide:TabNum!=3}">商品评论...</li>
    </ul>
</div>

<script>
    const vm = new Vue({
        el: ".tab",
        data() {
            return {
                TabNum:0
            }
        },
        methods: {
            tab(index){
                this.TabNum = index
            }
        }
    })
</script>

</body>
</html>

操作样式

 

上一篇:DM8 数据类型


下一篇:ConcurrentHashMap1.7和ConcurrentHashMap1.8的异同