【前端】动态改变样式的几种写法

本文详细介绍了前端中动态改变样式的三种主要方法:包括使用`:class`结合`{}`、`[]`来切换样式,以及直接通过`:style`属性设置内联样式。此外,也提及了使用JavaScript操作`class`和`style`属性来实现样式变化。对于更改`style`标签内的样式,作者建议避免这种做法,推荐使用内联样式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、行内样式

(1):class=“{}”
<div
	v-for="(item, index) in dataList"
	:key="item.name + index"
	class="sitem"
	:class="{
		'is-active': curName === item.name,
	}"
></div>
(2):class=“[]”
<div
	v-for="(item, index) in dataList"
	:key="item.name + index"
	:class="[
		'sitem',
		curName === item.name ? 'is-active' : '',
	]"
></div>
(3):style=“{}”
<div
	v-for="(item, index) in dataList"
	:key="item.name + index"
	:style="{
		color: item.mColor,
		'margin-top': '10px'
	}"
></div>

二、js写法

(1)class
<div
	v-for="(item, index) in dataList"
	:key="item.name + index"
	class="sitem"
	:id="'div_' + item.station_code"
	@click="clickPort(item)"
></div>

clickPort(sitem) {
	let div = document.querySelector('#div_' + sitem.station_code); //id
	if (div.classList.contains('isactive')) {
		div.classList.remove('isactive');
		//
	} else {
		div.classList.add('isactive');
		//
	}
}
(2)style

中间带 ” - ” 的用小驼峰命名就可以了。

clickBlock(i, j) {
	let div = document.getElementById('block'+i+'-'+j);
	if (div.style.backgroundColor==='rgb(159, 236, 231)') {
		div.style.backgroundColor='rgb(159, 236, 197)';
	} else {
		div.style.backgroundColor='rgb(159, 236, 231)';
	}
}
// setProperty()
// removeProperty() 自行百度

三、改变style标签内样式

<script>
export default {
  props: {
    zIndex: {
      default: 999,
      type: Number,
    },
  },
  mounted() {
    this.$refs.UI.style.setProperty('--zIndex', this.zIndex);
  },
  watch: {
    zIndex(val) {
      //, old) {
      this.$el.style.setProperty('--zIndex', val);
    },
  },
}
</script>
<style lang="less" scoped>
.dialog1 {
  width: 81.8rem;
  height: 32rem;
  position: relative;
  z-index: var(--zIndex);
}
</style>

没必要,用 一(3)就好了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值