【2023-10-23】$(‘xx‘).css()方法设置元素css样式问题随记

好久不见~~~

问题场景

根据业务需要,对使用到的table组件,设置表头固定效果。由于table组件未vue封装组件,经过尝试,可以通过监听表格容器变化时,通过获取对应的thead、tbody,并分别设置其对应的css样式属性来实现。

鉴于要对DOM元素进行样式设置,所有想到了使用jQuery获取DOM元素,并通过$('xx').css()方法来设置css样式的方法。由于table的最小宽度问题,导致容器太小时出现横向功能点,原始的滚动条比较丑,所有想着改变原始滚动条的样式。
希望通过类似如下样式,实现预期效果,但发现$('xx').css()方法对如下属性不生效

scrollbar-width: thin; /* 设置滚动条宽度 */
scrollbar-color: transparent transparent; /* 设置滚动条颜色 */

问题原因

Q:$('xx').css()是否支持设置滚动条显示为透明?

A:$('xx').css() 是jQuery的CSS设置方法,它用于更改元素的CSS属性。在jQuery中,你可以使用这个方法来设置元素的CSS属性,但要注意,不是所有的CSS属性都可以通过jQuery的css()方法来设置。

滚动条的样式(例如滚动条的颜色、滚动条的宽度等)通常不是通过标准的CSS属性来设置的,因此css()方法通常无法用于直接更改滚动条的样式。

要自定义滚动条的样式,你需要使用CSS的伪元素(如::-webkit-scrollbar)或JavaScript和CSS库(如PerfectScrollbar、mCustomScrollbar)等方法,因为不同浏览器可能支持不同的自定义滚动条样式。

修复方案

综合考虑后,还是采用vue中解决样式问题比较常见的样式穿透的方案来解决。

  • 页面中定义(或选择)一个唯一标识的id,用于查找元素
  • 使用v-deep样式穿透,选择对应的table元素
  • 设置滚动条横向滚动条的css样式

吐槽~~非常规的项目+非常规的要求注定会产生一些非常规切奇奇怪怪的解决方案

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值