首页 前端知识 09、用数据变量等控制 vue 项目标签中 CSS 样式的五种方法

09、用数据变量等控制 vue 项目标签中 CSS 样式的五种方法

2024-05-30 10:05:24 前端知识 前端哥 922 380 我要收藏

通过 vue 中的变量值控制标签/组件样式

  • Ⅰ、通过 Vue3 的数据变量来控制 h1 标签样式:
    • 1、代码为:
    • 2、截图为:
  • Ⅱ、通过 vue3 的 computed 来控制 h1 标签样式:
    • 1、代码为:
    • 2、截图为:
  • Ⅲ、通过 vue3 的 computed 传值来控制 h1 标签样式:
    • 1、代码为:
    • 2、截图为:
  • Ⅳ、通过 vue3 的 computed 及数据变量来控制 h1 标签样式:
    • 1、代码为:
    • 2、截图为:
  • Ⅴ、通过 item 是否存在某个值来确定标签的类名:
    • 1、代码为:
    • 2、截图为:
  • Ⅵ、小结:

Ⅰ、通过 Vue3 的数据变量来控制 h1 标签样式:

1、代码为:


<template>
  <div>
    <!-- h1 展示 -->
    <h1 :style="{ '--isColor': isColor, '--isFontSize': isFontSize }">
      学习vue
    </h1>
  </div>
</template>


<script setup>
// 数据
import { ref } from 'vue'
const isColor = ref('red')
const isFontSize = ref('30px')
</script>


<style lang="scss" scoped>
/*
 样式:
 color: var(--isColor) !important; 代码里面的 !important 不是必须的(即:视情况而定);
*/
h1 {
  color: var(--isColor) !important;
  font-size: var(--isFontSize) !important;
}
</style>

2、截图为:

// 发现数据中定义的 样式都已生效:
在这里插入图片描述

Ⅱ、通过 vue3 的 computed 来控制 h1 标签样式:

1、代码为:


<template>
  <div>
    <!-- h1 展示 -->
    <h1 :style="processPercent">学习vue</h1>
  </div>
</template>

<script setup>
// 数据
import { computed } from 'vue'

// 定义一个计算属性 processPercent(注意:每个函数包含一个 computed);
const processPercent = computed(() => {
  return 'color: blue'
})
</script>

<style lang="scss" scoped></style>

2、截图为:

// 发现数据中定义的 样式都已生效:

在这里插入图片描述

Ⅲ、通过 vue3 的 computed 传值来控制 h1 标签样式:

1、代码为:


<template>
  <div>
    <!-- h1 展示 -->
    <!-- 此时可以根据不同的 item 值,而通过 processPercent() 方法返回不同的样式值; -->
    <div :style="processPercent(80)">学习vue</div>
  </div>
</template>

<script setup>
// 数据
import { computed } from 'vue'

// 定义一个计算属性 processPercent(注意:每个函数包含一个 computed);
const processPercent = computed(() => {
  return function (val) {
    return 'height:' + val + 'px'
  }
})
</script>

<style lang="scss" scoped></style>

2、截图为:

在这里插入图片描述

Ⅳ、通过 vue3 的 computed 及数据变量来控制 h1 标签样式:

1、代码为:


<template>
  <div>
    <!-- h1 展示 -->
    <div :style="processPercent">学习vue</div>
    <!-- <div style="height: 30px">学习vue</div> -->
  </div>
</template>

<script setup>
// 数据
import { ref, computed } from 'vue'

const num = ref('40px')

// 定义一个计算属性 processPercent(注意:每个函数包含一个 computed);
const processPercent = computed(() => {
  return 'height:' + num.value
})
</script>

<style lang="scss" scoped></style>

2、截图为:

在这里插入图片描述

Ⅴ、通过 item 是否存在某个值来确定标签的类名:

1、代码为:


<template>
  <!-- div 展示 -->
  <!-- 此时可以根据不同的 item.isActived 值,而展示不同的样式值(即:'actived''unActived'); -->
  <div
    v-for="(item, index) in data"
    :key="index"
    :class="item.isActived ? 'actived' : 'unActived'"
  >
    学习css
  </div>
</template>

<script setup>
// 数据
import { ref } from 'vue'

// div 会根据 isActived 的值来展示不同的类;
const data = ref([
  { isActived: true },
  { isActived: false },
  { isActived: true },
  { isActived: false },
])
</script>

<style lang="scss" scoped>
.actived {
  color: blue;
}
.unActived {
  color: red;
}
</style>

2、截图为:

// actived 的样式;
在这里插入图片描述

// unActived 的样式;
在这里插入图片描述

Ⅵ、小结:

其一、哪里有不对或不合适的地方,还请大佬们多多指点和交流!
其二、若有转发或引用本文章内容,请注明本博客地址(直接点击下面 url 跳转) https://blog.csdn.net/weixin_43405300,创作不易,且行且珍惜!
其三、有兴趣的话,可以多多关注这个专栏(Vue(Vue2+Vue3)面试必备专栏)(直接点击下面 url 跳转):https://blog.csdn.net/weixin_43405300/category_11525646.html?spm=1001.2014.3001.5482

转载请注明出处或者链接地址:https://www.qianduange.cn//article/10049.html
评论
发布的文章

使用 mapstructure 解析 json

2024-06-05 13:06:03

大家推荐的文章
会员中心 联系我 留言建议 回顶部
复制成功!