03 Vue样式绑定

样式绑定

5.1 class 绑定

语法详解
<!-- 1. 字符串语法 -->
<div :class="className"></div>
<!-- className: 'active' -->

<!-- 2. 对象语法 -->
<div :class="{ active: isActive, 'text-danger': hasError }"></div>
<!-- 根据条件添加/移除类 -->

<!-- 3. 数组语法 -->
<div :class="[baseClass, activeClass]"></div>
<!-- 应用多个类 -->

<!-- 4. 混合语法 -->
<div :class="['btn', { 'btn-primary': isPrimary }]"></div>

<!-- 5. 在组件上使用 -->
<MyComponent :class="{ active: isActive }" />
应用场景
<template>
  <!-- 按钮状态 -->
  <button :class="{
    'btn': true,
    'btn-primary': type === 'primary',
    'btn-disabled': disabled,
    'btn-loading': loading
  }">
    提交
  </button>
  
  <!-- 表单验证状态 -->
  <input :class="{
    'form-control': true,
    'is-valid': isValid,
    'is-invalid': hasError,
    'is-dirty': isDirty
  }" v-model="value">
  
  <!-- 主题切换 -->
  <div :class="['app', theme, { 'mobile': isMobile }]">
    内容
  </div>
</template>

5.2 style 绑定

语法详解
<!-- 1. 对象语法 -->
<div :style="{ color: textColor, fontSize: size + 'px' }"></div>

<!-- 2. 数组语法 -->
<div :style="[baseStyles, overridingStyles]"></div>

<!-- 3. 自动添加前缀 -->
<div :style="{ transform: 'scale(' + scale + ')' }"></div>
<!-- Vue 会自动添加浏览器前缀 -->

<!-- 4. 多重值 -->
<div :style="{ display: ['-webkit-box', '-ms-flexbox', 'flex'] }"></div>
<!-- 浏览器支持哪个用哪个 -->
应用场景
<template>
  <!-- 动态宽度 -->
  <div :style="{ width: progress + '%' }" class="progress-bar"></div>
  
  <!-- 响应式位置 -->
  <div :style="{
    left: x + 'px',
    top: y + 'px',
    transform: `rotate(${angle}deg)`
  }" class="draggable"></div>
  
  <!-- 主题颜色 -->
  <div :style="{
    '--primary-color': primaryColor,
    '--secondary-color': secondaryColor
  }" class="theme-container">
    内容
  </div>
  
  <!-- 动画控制 -->
  <div :style="{
    opacity: isVisible ? 1 : 0,
    transition: `opacity ${duration}s ease`
  }" class="fade-element"></div>
</template>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值