【Vue样式绑定详细介绍】

Vue样式绑定详细介绍

  • 1. 样式绑定
  • 2. 字符串语法
  • 3. 对象语法
  • 4. 数组语法
  • 4. 自动添加前缀
  • 5. 多重值 (2.x的.9+版本或3.x)

1. 样式绑定

在Vue中,样式绑定是通过 v-bind:style 或简写 :style 来实现的,它允许你将多种样式动态地绑定到元素上,样式绑定非常灵活,它接受字符串、对象,或对象和数组混合的形式。

class绑定
使用方式:v-bind:,expression的类型:字符串、数组、对象
style绑定
v-bind:style="expression", expression的类型:字符串、数组、对象

示例:

<--定义示例样式-->
<style> 
.fontClass { 
    font-size: 40px;
}
.colorClass {
    color: red;
}
</style>

<!--使用-->
<p>
    <span v-bind:class="fc">fafa</span>
</p>
<p>
    <!--简写-->
    <span :class="ac">fafa</span>
</p>

<p>
    <!--直接使用style样式单-->
    <span style="font-size: 40px; color:blue;">aaa</span>
    <br/>
    <!-- 使用vue,样式名称为驼峰风格 。花括号,多个属性逗号分隔-->
    <span :style="{fontSize:fontSize+'px',color: color}">bbb</span>
    <br/>
    <span :style="myStyle">test</span>
</p>
var vm = new Vue({
    el: "#app",

    data: {
        fc: 'fontClass',
        ac: ['fontClass', 'colorClass'],

        fontSize: 40,
        color: 'green',

        //样式对象,注意:样式名使用驼峰命名,如:fontSize
        myStyle: {
            fontSize: '50px',
            color:'red',
            fontWeight: 'bold'
        }
    }
});

2. 字符串语法

最直接的方式是绑定一个样式字符串,这和直接写在模板内部是一样的,但这种方式不太灵活。

<div v-bind:style="'color: red;'">div>

3. 对象语法

对象语法是最常用的绑定样式的形式,在对象中,CSS属性名可以用驼峰式(camelCase)或短横分隔命名(kebab-case,需要用引号括起来)。

<div :style="{ color: activeColor, fontSize: fontSize + 'px' }">div>

你可以在数据属性中定义 activeColorfontSize,然后Vue会自动把它们绑定到元素的style属性上。

如果样式的属性值可能是null或者undefined,Vue将智能地忽略它们。

new Vue({
  data: {
    activeColor: 'red',
    fontSize: 30
  }
});

你也可以直接绑定一个样式对象:

 <div :style="styleObject">div>
data() {
  return {
    styleObject: {
      color: 'red',
      fontSize: '13px'
    }
  }
}

4. 数组语法

使用数组语法,你可以将多个样式对象应用到同一个元素上:

<div :style="[baseStyles, overridingStyles]">div>
new Vue({
  data: {
    baseStyles: {
      color: 'red',
      fontSize: '12px'
    },
    overridingStyles: {
      fontWeight: 'bold'
    }
  }
});

4. 自动添加前缀

当使用DOM样式时,Vue.js 会自动侦测并添加相应的前缀,以适应不同浏览器对某些CSS属性的支持。

5. 多重值 (2.x的.9+版本或3.x)

从Vue.js 2.3.0+版本开始,可以为 style 属性绑定的数组提供多个(带前缀的)值:

 <div :style="{ display: ['-webkit-box', '-ms-flexbox', 'flex'] }">div>

这样将会只渲染数组中最后一个被浏览器支持的值,在这个例子中,将会渲染为 display: flex,如果浏览器支持无前缀的flexbox版本。

综合以上,样式绑定是在开发Vue应用时管理元素样式的一个非常强大且灵活的特性,通过合理地使用字符串、对象或数组语法,可以很方便地在不同状态下,更新元素的样式。

你可能感兴趣的:(vue.js,前端,javascript,vue.js,前端,javascript,java)