Day 20. v-bind - Style的绑定

昨天讲了class的绑定,今天换来讲style (ノ◕ヮ◕)ノ*:・゚✧

绑定Style

v-bind:style绑定的方式跟昨天的class很像。
Style 是 key:value 做为一组,单个 DOM 元素可以设置多个 style,以;区隔各个 style :

<div style="color:orange;font-size:50px">Hello vue</div>

Object Syntax

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

<div id="app">
    <div v-bind:style="{color:color,fontSize:size}">
        Hello vue
    </div>
</div>

<script>
    var vm = new Vue({
        el: '#app',
        data: {
            color: 'orange',
            size: '50px'
        },
    });
</script>

https://ithelp.ithome.com.tw/upload/images/20211001/20131400ubVreah6ib.png

我们也可以直接将它绑定到一个style object上,这样模板看起来会更清晰。

<div v-bind:style="styleObject">Hello vue</div>
data: {
    styleObject: {
        color: 'orange',
        fontSize: '50px'
    }
}

Array Syntax 数组语法

v-bind:style 的array syntax可以将多个样式object应用到同一个元素上:

<div id="app">
    <div v-bind:style="[fontStyleObj, backgroundStyleObj]">Hello vue</div>
</div>
<script>
    var vm = new Vue({
        el: '#app',
        data: {
            fontStyleObj: {
                color: '#3A006F',
                fontSize: '100px',
                fontStyle: 'italic'
            },
            backgroundStyleObj: {
                background: '#DCB5FF'
            }
        },
    });
</script>

https://ithelp.ithome.com.tw/upload/images/20211001/20131400qlp2Z2l9m1.png

三元运算

style也跟class一样除了array也可以使用三元运算的方式来绑定。

<div id="app">
    <div v-bind:style="{color:color,fontSize:size,background:isBrown ? 'brown' : ' '}">
        Hello vue
    </div>
</div>
<script>
    var vm = new Vue({
        el: '#app',
        data: {
            color: 'orange',
            size: '50px',
            isBrown: true
        },
    });
</script>
<style>
    .brown {
        color: brown;
    }
</style>

https://ithelp.ithome.com.tw/upload/images/20211001/201314005aoytIm8Vh.png

自动添加前缀

使用 Vue.js 绑定 Style 时, Vue 会帮忙把 -webkit- 、 -moz- ... 等特定浏览器的特殊属性所需的前缀字加上,这样我们就不用自己一个一个写上全部的前缀字了◥(ฅº₩ºฅ)◤


<<:  Day23运算子(JavaScript)

>>:  Day 27 权限宝石:IAM Group 建立与使用

Day26 - 使用 Share Target Picker 分享讯息

LINE Developers:https://developers.line.biz/zh-ha...

【修正模型】4-1 执行上下文(Execution Context)

经过了二十多天,一路上我们从基本的逻辑思考方式到了解 JavaScript 的意义,再从 JavaS...

23.unity储存文字内容(List、foreach)

今天要用List来储存记事本内的对话资料 0.和昨天一样,先准备好对话.txt 1.写脚本,先检查有...

Day09 - 物件要解构成 primitive 再传入 props ,小心 by reference 动到不该动的兄弟

今天念 重新认识 Vue.js | Kuro Hsu 2-2 元件之间的沟通传递 在 HTML 里的...

ETA Screen (3)

我们这次会为班次页加上自动更新和顺带为下一篇实作错误 banner 做准备。 我们这页除非显示不能连...