吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 655|回复: 11
收起左侧

[求助] CSS优先级的问题

[复制链接]
cqwcns 发表于 2022-4-28 10:17
直接上码,CSS是这样的(注意顺序):
[CSS] 纯文本查看 复制代码
.w-500 {
    width: 500rpx;
}

.w-600 {
    width: 600rpx;
}


HTML这样的:
[HTML] 纯文本查看 复制代码
<view class="w-600 h-600">box1</view>


有时我通过一些事件(例如hover-class),增加一些class,使其变成这样:
[HTML] 纯文本查看 复制代码
<view class="w-600 h-600 w-500">box1</view>


我们期望是按照HTML中class的书写顺序,优先使用w-500使元素的宽度变成500。
但经过测试,解释器并不会考虑HTML中的书写顺序,而是只考虑CSS中的书写顺序,导致元素的宽度仍然是600。


我现在能够想到的解决方案是数据绑定,然后还有一个JS的hover事件去改变数据,这明显很繁琐。


这种情况,各位大佬什么更好的解决办法,谢谢。

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

一大杯奶茶呀 发表于 2022-4-28 10:32
直接把需要hover后的class里面属性加上 !important 就行了 不管class名称在前在后 都会优先使用你的hover那个class的内容
 楼主| cqwcns 发表于 2022-4-28 10:41
一大杯奶茶呀 发表于 2022-4-28 10:32
直接把需要hover后的class里面属性加上 !important 就行了 不管class名称在前在后 都会优先使用你的hover那 ...

后加的class并不固定,就是说所有类都可能被拿来添加。

所有这个方法应该不行。
 楼主| cqwcns 发表于 2022-4-28 10:42
一大杯奶茶呀 发表于 2022-4-28 10:32
直接把需要hover后的class里面属性加上 !important 就行了 不管class名称在前在后 都会优先使用你的hover那 ...

如果这样,是不是一定要动用JS
一大杯奶茶呀 发表于 2022-4-28 10:44
cqwcns 发表于 2022-4-28 10:42
如果这样,是不是一定要动用JS

你直接把demo和需求贴出来 我看看
xiaohuihui88 发表于 2022-4-28 10:48
你可以js移除w600,添加w500样式
灿烂的小居 发表于 2022-4-28 10:52
c;lass直接name标识呗,
name:hover增加or修改样式;
[HTML] 纯文本查看 复制代码
<head>
  <style>
    .box{
      width: 600px;
    }
    .box:hover{
      width: 700px;
    }
  </style>
</head>
<body>
  <div class="box">
    box
  </div>
</body>


!important一般是用来调试属性的。
至于要自定义更多的事件操作,就离不开js支持了。

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
cqwcns + 1 + 1 谢谢@Thanks!

查看全部评分

centos7 发表于 2022-4-28 11:35
一大杯奶茶呀 发表于 2022-4-28 10:32
直接把需要hover后的class里面属性加上 !important 就行了 不管class名称在前在后 都会优先使用你的hover那 ...

对啊   加important
知心 发表于 2022-4-28 12:13
建议替换类名,不是追加类名。调整一下css的书写逻辑,公用的样式写在一个class里,变化的写在不同的class里,切换时替换对应的class即可
Todd 发表于 2022-4-28 13:16
建议看看css的权重说明
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 12:52

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表