关于 uniapp view标签使用 hover-class属性不生效问题解决

问题

使用hover-class实现点击高亮效果!但是发现样式不生效!
问题一:小程序与h5 点击高亮 不生效!
问题二:APP 点击高亮 生效,小程序与h5 点击高亮 不生效!

解决

使用条件编译进行兼容,

<!-- #ifdef APP-NVUE -->
  <view class="bg-white flex align-stretch" hover-class="bg-light" @click="onClick">
  	<!-- #endif -->
  	<!-- #ifndef APP-NVUE -->
  	<view class=" flex align-stretch" hover-class="bg-light" @click="onClick">
  		<!-- #endif -->
   </view>

其中问题一中 hover-class 不生效是因为css权重问题。
下面是css样式编写样式顺序

.bg-light { background-color: #f8f9fa;}
.bg-white { background-color: #ffffff;}

上面的class与在css中的定义顺序有关,最后定义的优先级最高,而不是html中绑定class的属性值顺序,所以bg-whitebg-light优先级高,hover-class=“bg-light” 不生效!
在这里插入图片描述
这里注意的是f12查看的调试窗口显示的是bg-whitebg-light之前 但是bg-white的优先级比bg-light的高,所以bg-white生效。

问题二 APP中 hover-class 不生效原因则是需要先定义一个背景色 否则使用调试工具查看时默认背景色为空,hoverClass在html中有定义但也不可以生效!
在这里插入图片描述
在这里插入图片描述
所以 兼容APP时 需要加上bg-white,使用使用条件编译进行兼容;
正确的写法为

  <!-- #ifdef APP-NVUE -->
  <view class="bg-white flex align-stretch" hover-class="bg-light" @click="onClick">
  	<!-- #endif -->
  	<!-- #ifndef APP-NVUE -->
  	<view class=" flex align-stretch" hover-class="bg-light" @click="onClick">
  		<!-- #endif -->
   </view>

或者定义样式是把bg-light写在最后面

.bg-white { background-color: #ffffff;}
.bg-light { background-color: #f8f9fa;}
  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值