美文网首页
样式判断-动态添加类名

样式判断-动态添加类名

作者: 李小白呀 | 来源:发表于2023-12-14 15:10 被阅读0次

动态添加类名
提示: 所有动态添加的类名,放在表达式里都需要添加引号,进行包裹。

1.通过 对象 的形式,使用花括号进行包裹。

使用方法:{'类名': boolean}
第一个参数是需要添加的类名,第二个参数是一个 boolean值。
优点是: 可以通过逗号进行分割,即可添加多个类名
代码如下:

<template>
  <div class="index">
    <div v-for="(item,index) in state.list" :key="index" class="list-box">
    <!-- 通过list数组里isActive属性,给p元素添加active类名;-->
    <p :class="{'active': item.isActive">{{ item.title }}</p>
    <!-- 给p元素添加active类名;
        通过list数组里isRed属性,给p元素添加red类名;
       (这里添加了两个类名,通过逗号进行分隔的)-->
      <p :class="{'active': item.isActive, 'red': item.isRed}">{{ item.title }}</p>
    </div>
    <div></div>
  </div>
</template>

2.通过 数组 的形式,使用 []进行包裹。

使用方法:
使用方法:[判断成立的情况 ? '类名1' : '类名2']

第一个参数是判断条件成立的表达式,第二个参数是表达式成立的情况下添加的类名,第三个表达式是情况不成立的情况下的类名。
代码如下:

<p :class="[item.isRed ? 'red' : '']">{{ item.title }}</p>
3.通过 方法 的形式,在方法当中返回想要的类名。

使用方法:methods(),直接写方法名。
提示:逻辑多的时候建议用方法来添加类名,只有一个判断的时候建议用三元。
代码如下:

<template>
  <div class="index">
    <div v-for="(item,index) in state.list" :key="index" class="list-box">
        <!-- 直接返回方法名,例如这里我的方法是 isred -->
        <p :class="isRed(item)">{{ item.title }}</p>
    </div>
    <div></div>
  </div>
</template>
<script setup>

// 在方法里写自己的判断,然后返回对应的类名;
const isRed = (item) => {
  return item.isRed ? 'red' : ''
}
三元
:class="[grid==true?'gridbgc':'']"
4.动态添加style样式

在vue中,动态添加 style 样式

所有的样式名必须是 驼峰写法;比如 font-size必须写成 fontSize;
除了绑定的值以外,属性都得用引号括起来,比如 fontSize: '12px'

1)通过对象 的形式

<i :style="{'color':isBling?'red':'white'}" @click=""></i>
<div style="color:{if content == '' then 'gray' else 'black'};"></div>
<template>
  <div class="index">
    <!-- 页面直接添加样式 -->
    <div :style="{fontSize: '20px', color: 'red'}">哈哈哈</div>
    <!-- vue 动态添加样式,通过数据的双向绑定 -->
    <div :style="{fontSize: state.activeSize  + 'px', color: state.activeColor}">嘿嘿嘿</div>
  </div>
</template>
<script setup>
import {reactive} from 'vue';
const state = reactive({
  activeSize: 14,
  activeColor: 'blue'
})
</script>

2)通过数组 的形式

<div :style="[state.sizeStyle,state.colorStyle]">123</div>

const state = reactive({
 sizeStyle: {
    fontSize: '18px',
    height: '40px',
    lineHeight: '40px',
    width: '80px',
    textAlign: 'center'
  },
  colorStyle: {
    color: 'red',
    border: '1px solid green'
  }
})

3)通过三元判断 的形式

<div :style="item.active ? 'color: red': ''">哈哈哈</div>

4)通过方法 的形式

<template>
  <div class="index">
    <div :style="setStyle()">哈哈哈</div>
  </div>
</template>
<script setup>
const setStyle = () => {
  return 'background: red; height: 40px;line-height: 40px; width: 70px;color: #fff; text-align: center;'
}
</script>

相关文章

  • 常用 v-bind动态绑定class(对象语法)

    1.用法: 通过布尔值决定是否将该类名添加到class上 背景:通过判断给class添加类名,动态改变元素的样式。...

  • React动态添加类名和样式

    动态添加类名 已知变量:value = { class: 'class1',class: 'class2' ,va...

  • 给dom元素添加类

    在封装公用组件的时候,经常会用到动态给元素添加样式思路:先判断这个dom有没有这个类,没有才给这个dom添加类 往...

  • jquery的class样式相关操作方法总结

    目录 JavaScript原生类样式操作获取类名添加类名替换类名删除类名 jQuery类样式操作使用attr获取和...

  • jQuery常用的DOM操作

    添加类和删除类 判断有没有类 切换类 注意点操作类样式的时候,所有的类名 都不带点(.) jquery中的动画隐藏...

  • 10、类操作

    添加类:addClass(类名) 移除类: removeClass(类名) 判断类:hasClass(类名) 切换...

  • 操作元素样式类函数

    判断是否存在某一个样式类名:hasClass 验证当前元素是否包含className这个样式类名 给元素增加样式类...

  • 原生js的一些兼容封装

    获取Dom元素 获取样式表里的样式 添加和移除类名 添加(优化原生防止重复添加) 移除类(优化原生防止重复添加) ...

  • elementUI步骤条样式改造

    原文地址:elementUI步骤条样式改造 修改的效果图如上。下面详细介绍修改的步骤。(通过动态添加类名的方式改进...

  • Bootstrap进度条

    1、进度条(基本样式) 首先在父 上添加“progress”类名然后在子 上添加“progress-bar”类名,...

网友评论

      本文标题:样式判断-动态添加类名

      本文链接:https://www.haomeiwen.com/subject/znxwgdtx.html