动态设置css

        相信写css 的小伙伴 都有一个诉求,恨不得css随心所欲,我想他是啥就是啥,动态样式,不想写死,下面是几种动态设置css样式,个人感觉最有趣的 放在最后一个

  1.         jquery 或者 原生js操作dom元素,提前在<style>写好calss样式
        通过方法         addClass()-向被选元素添加一个或多个类

                        removeClass()-从被选元素删除一个或多个元素

                        toggleClass()-对被选元素进行添加/删除类的切换操作

                        css()-设置或返回样式属性

    2.        vue 通过动态 :class"{myClass = true}" 其中 myClass 为 自己在<style>中定义好的 样式 true 代表启用 myClass 这个样式,false 代表不适用myClass 这个样式

<template>

  <span :class="{myClass=isShow}"></span> // 通过修改isShow 来决定是否启用myClass这个样式
</template>

<script>

export default {

    data(){
      return {
         isShow:false 
       }
    }
}

</script>


<style>

 .myClass {
    color:red
}
</style>

        上面的两种动态设置css 样式的方法 大同小异,都是提前定义好 需要使用的样式,然后通过添加或者启用 移除或者废除的方式 动态设置。

        在此,思考一个问题, 我需要动态设置 其中一个css属性的值,例如 margin-top 的值,难道我提前在style中提前设置好类样式,然后一个一个判断来使用?显然不适合。

当然,如果是vue之类的前端框架的话,也可以通过 绑定动态行内样式:style=“`margin-top:${value}`”的方式进行动态设置margin-top的值,除此之外 还有一种 类似的方式:

        在style中 是可以设置 变量的 ,例如:

<style>
  .test {
     --my-color:red;
     color:var(--my-color);
   }
</style>

上述方法, 使用.test 样式的 元素 便能 得到color为red的样式    而我们要做到动态设置color 的目的,只需要去修改--my-color这个属性值    在此做个测试

<span style="--my-color:green">

 在行内样式,修改--my-color 这个属性,发现 span元素的文字变成了green

到了这里,相信会有些感觉,这种方法 和 vue 中 :style=“`margin-top:${value}`”有着异曲同工之妙

区别在于:

        :style=“`margin-top:${value}`“ 这种方式 可以说是独立的,也可以说是额外为元素设置一个css属性

       :style="`--my-color:${value}`" 这种方式 其中--my-color 变量 是应用在 style中的 定义好的选择器样式,若 多个选择器都使用了该变量,那么修改--my-color 便能将所有使用该变量的值 都修改

个人:

        第三种动态设置css的方法  个人觉得应用起来更加灵活,当然也不是绝对的,还是得看使用场景来选择。

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值