上一篇:Vue 的模板語法和計算屬性 :https://segmentfault.com/a/11...
下一篇:Vue 的條件渲染和列表渲染 :https://segmentfault.com/a/11...html
咱們能夠傳給 v-bind:class 一個對象,以動態地切換 class:web
<style> .exp{ border: 1px solid #ccc; } .forExp{ background: blue; } </style> <div class="exp" v-bind:class="{newExp:isNewExp}"></div> <script> var exp=new Vue({ el:".exp". data:{ isForExp:false } }) </script>
如上,咱們先給 .exp 一個邊框,咱們利用 v-bind 方法傳入一個新的 class 屬性 .newExp,設置一個藍色的背景顏色。當咱們在控制檯修改 .newExp 的屬性爲 true 時,會給 div 添加一個藍色的背景顏色。segmentfault
咱們也能夠傳入更多的屬性來切換多個 class 。數組
<div class="exp" v-bind:class="{newExp:isExp,npc:isNpc}"></div> <script> data:{ isExp:false, isNpc:true } </script>
在模板裏的渲染結果爲:code
<div class="exp isNpc"></div>
咱們也能夠使用對象的方法來切換屬性component
<div class="exp" v-bind:class="obj"></div> <script> data:{ obj:{ newExp:false, npc:true } } </script>
渲染結果和上面的同樣orm
咱們能夠把一個數組傳給 v-bind:class,以應用一個 class 列表:htm
<div class="exp" v-bind:class="[newExp,oldExp]"></div> <script> data:{ newExp:"new", oldExp:"old" } </script>
渲染爲:對象
<div class="exp new old"></div>
要切換class,使用三元運算符:ip
<div class="exp" v-bind:class="[act? newExp:oldExp]"></div> <script> data{ newExp:"new", oldExp:"old", act:true } <script>
act 爲 true 時,添加 new ,爲 false 時添加 old。
聲明一個組件:
Vue.component("my", { template: '<p class="foo bar">Hi</p>' })
而後在使用它的時候添加一些 class:
<my class="tip"></my>
最終渲染爲
<p class="foo bar tip">Hi</p>
一樣的適用於綁定 HTML class:
<my v-bind:class="{ active: isActive }"></my>
當active爲true時,HTML 將被渲染成爲:
<p class="foo bar active">Hi</p>
v-bind:style 的對象語法十分直觀——看着很是像 CSS,其實它是一個 JavaScript 對象。 CSS 屬性名能夠用駝峯式 (camelCase) 或 (配合引號的) 短橫分隔命名 (kebab-case):
<div v-bind:style="{ color: activeColor, fontSize: fontSize + 'px' }"></div> <script> data:{ activeColor:"blue", fontSize:20 } </script>
使用對象語法的話,會看起來更加清晰
<div v-bind:style="obj"></div> <script> data:{ obj:{ color:"#FFF", fontSize:"20px" } } </script>
v-bind:style 的數組語法能夠將多個樣式對象應用到一個元素上:
<div v-bind:style="[style1,style2]"></div> <script> data:{ style1:{ color:"#666" }, style2:{ background:"#b1b1b1" } } </script>
當 v-bind:style 使用須要特定前綴的 CSS 屬性時,如 transform,Vue.js 會自動偵測並添加相應的前綴。
Chrome 和 Safari : -webkit- IE : -ms- Firfox : -moz- Opera : -o-
上一篇:Vue的模板語法和計算屬性 :https://segmentfault.com/a/11...
下一篇:Vue 的條件渲染和列表渲染 :https://segmentfault.com/a/11...