Menu
×
   ❮   
HTML CSS JAVASCRIPT SQL PYTHON JAVA PHP HOW TO W3.CSS C C++ C# BOOTSTRAP REACT MYSQL JQUERY EXCEL XML DJANGO NUMPY PANDAS NODEJS R TYPESCRIPT ANGULAR GIT POSTGRESQL MONGODB ASP AI GO KOTLIN SASS VUE DSA GEN AI SCIPY AWS CYBERSECURITY DATA SCIENCE
     ❯   

Vue 教程

Vue 主页 Vue 简介 Vue 指令 Vue v-bind Vue v-if Vue v-show Vue v-for Vue 事件 Vue v-on Vue 方法 Vue 事件修饰符 Vue 表单 Vue v-model Vue CSS 绑定 Vue 计算属性 Vue 侦听器 Vue 模板

扩展 应用

Vue 为什么、如何以及设置 Vue 第一个 SFC 页面 Vue 组件 Vue 属性 Vue v-for 组件 Vue $emit() Vue 透传属性 Vue 作用域样式 Vue 本地组件 Vue 插槽 Vue v-slot Vue 作用域插槽 Vue 动态组件 Vue 传送门 Vue HTTP 请求 Vue 模板 Refs Vue 生命周期钩子 Vue 提供/注入 Vue 路由 Vue 表单输入 Vue 动画 Vue 带有 v-for 的动画 Vue 构建 Vue 组合式 API

Vue 参考

Vue 内置属性 Vue 内置组件 Vue 内置元素 Vue 组件实例 Vue 指令 Vue 实例选项 Vue 生命周期钩子

Vue 示例

Vue 示例 Vue 练习 Vue 测验 Vue 服务器 Vue 证书

Vue CSS 绑定

了解更多有关如何使用 v-bind 通过 styleclass 属性修改 CSS 的信息。

虽然使用 v-bind 更改 styleclass 属性的概念相当简单,但语法可能需要一些时间来适应。

Vue 中的动态 CSS

您已经了解了如何使用 Vue 通过在 styleclass 属性上使用 v-bind 来修改 CSS。在本教程的 v-bind 部分已经简要说明了这一点,并且还提供了一些 Vue 更改 CSS 的示例。

在这里,我们将更详细地解释如何使用 Vue 动态更改 CSS。但首先,让我们看两个使用在本教程中已经看到过的技术的示例:使用 v-bind:style 的内联样式以及使用 v-bind:class 分配类。


内联样式

我们在 Vue 中使用 v-bind:style 来执行内联样式。

示例

使用内联样式,<input type="range"> 元素用于更改 <div> 元素的不透明度。

<input type="range" v-model="opacityVal">
<div v-bind:style="{ backgroundColor: 'rgba(155,20,20,'+opacityVal+')' }">
  拖动上面的范围输入以在此处更改不透明度。
</div>
自己尝试 »

分配一个类

我们在 Vue 中使用 v-bind:class 来将一个类分配给 HTML 标签。

示例

选择食物图片。使用 v-bind:class 突出显示选定的食物以显示您的选择。

<div v-for="(img, index) in images">
  <img v-bind:src="img.url"
       v-on:click="select(index)"
       v-bind:class="{ selClass: img.sel }">
</div>
自己尝试 »

分配类和样式的其他方法

以下是有关在本教程中之前未见过的 v-bind:classv-bind:style 用法的一些不同方面。

  1. 当使用 class=""v-bind:class="" 将 CSS 类分配给 HTML 标签时,Vue 会合并这些类。
  2. 使用 v-bind:class="{}" 分配包含一个或多个类的对象。在对象内部,可以打开或关闭一个或多个类。
  3. 使用内联样式 (v-bind:style) 在定义 CSS 属性时,首选驼峰式命名法,但如果它在引号内,也可以使用 'kebab-case'。
  4. 可以使用数组/数组表示法/语法来分配 CSS 类。

下面将更详细地解释这些要点。


1. Vue 合并 'class' 和 'v-bind:class'

在 HTML 标签属于使用 class="" 分配的类,并且也使用 v-bind:class="" 分配给类的情况下,Vue 会为我们合并这些类。

示例

一个 <div> 元素属于两个类:'impClass' 和 'yelClass'。'important' 类以正常方式使用 class 属性设置,而 'yellow' 类则使用 v-bind:class 设置。

<div class="impClass" v-bind:class="{yelClass: isYellow}">
  此 div 同时属于 'impClass' 和 'yelClass'。
</div>
自己尝试 »

2. 使用 'v-bind:class' 分配多个类

当使用 v-bind:class="{}" 将 HTML 元素分配给一个类时,我们只需使用逗号来分隔和分配多个类。

示例

一个 <div> 元素可以同时属于 'impClass' 和 'yelClass' 类,具体取决于布尔型 Vue 数据属性 'isYellow' 和 'isImportant'。

<div v-bind:class="{yelClass: isYellow, impClass: isImportant}">
  此标签可以同时属于 'impClass' 和 'yelClass' 类。
</div>
自己尝试 »

3. 使用 'v-bind:style' 的驼峰式命名法与连字符命名法

当使用内联样式 (v-bind:style) 在 Vue 中修改 CSS 时,建议使用驼峰式命名法来表示 CSS 属性,但如果 CSS 属性在引号内,也可以使用 'kebab-case'。

示例

在这里,我们以两种不同的方式为 <div> 元素设置 CSS 属性 background-colorfont-weight:推荐的驼峰式命名法 backgroundColor,以及不推荐的在引号内使用 'kebab-case' 的方法 'font-weight'。两种选择都有效。

<div v-bind:style="{ backgroundColor: 'lightpink', 'font-weight': 'bolder' }">
  此 div 标签具有粉红色背景和粗体文本。
</div>
自己尝试 »

'驼峰式命名法' 和 '连字符命名法' 是在不使用空格或标点符号的情况下写一系列单词的方式。

  • **驼峰式命名法**是指第一个单词以小写字母开头,后面的每个单词都以大写字母开头,例如 'backgroundColor' 或 'camelCaseNotation'。之所以称为驼峰式命名法,是因为我们可以想象每个大写字母都像驼峰一样。
  • **连字符命名法**是指单词之间用连字符 - 分隔,例如 'background-color' 或 'kebab-case-notation'。之所以称为连字符命名法,是因为我们可以想象连字符像 '烤肉串' 中的串肉签一样。

4. 使用 'v-bind:class' 的数组语法

我们可以使用 v-bind:class 的数组语法来添加多个类。使用数组语法,我们可以同时使用依赖于 Vue 属性的类和不依赖于 Vue 属性的类。

示例

在这里,我们使用数组语法设置 CSS 类 'impClass' 和 'yelClass'。类 'impClass' 依赖于 Vue 属性 isImportant,而类 'yelClass' 始终附加到 <div> 元素上。

<div v-bind:class="[{ impClass: isImportant }, 'yelClass' ]">
  此 div 标签根据 isImportant 属性属于一个或两个类。
</div>
自己尝试 »

×

Contact Sales

If you want to use W3Schools services as an educational institution, team or enterprise, send us an e-mail:
[email protected]

Report Error

If you want to report an error, or if you want to make a suggestion, send us an e-mail:
[email protected]

W3Schools is optimized for learning and training. Examples might be simplified to improve reading and learning. Tutorials, references, and examples are constantly reviewed to avoid errors, but we cannot warrant full correctness of all content. While using W3Schools, you agree to have read and accepted our terms of use, cookie and privacy policy.

Copyright 1999-2024 by Refsnes Data. All Rights Reserved. W3Schools is Powered by W3.CSS.