Ubuntu GTK3主题下禁用状态滚动条按钮CSS hover样式不生效问询
解决方法
GTK3的CSS规则和Web标准CSS存在差异,你遇到的问题是伪类使用错误和顺序不当导致的,按以下方式调整即可生效:
替换禁用状态伪类
GTK3中控件禁用的官方伪类是:insensitive,而非Web CSS里的:disabled,老版本GTK3对:disabled有部分兼容,建议两种都写上保证适配。调整伪类顺序
GTK3的CSS解析器要求状态伪类放在交互伪类之前,正确的选择器写法如下:
/* 同时兼容新旧版本GTK3的禁用滚动条按钮悬停样式 */ scrollbar button:disabled:hover, scrollbar button:insensitive:hover { /* 这里放你要的自定义样式,示例: background: rgba(255,255,255,0.1); border-radius: 2px; */ }
- 样式被覆盖的处理
如果调整后还是不生效,大概率是系统默认主题的滚动条样式权重更高,你可以提升当前选择器的权重覆盖默认规则:
/* 提升权重后的写法 */ window scrollbar button:disabled:hover, window scrollbar button:insensitive:hover { /* 你的自定义样式 */ }
调试小技巧:修改后可以直接运行
gtk3-widget-factory命令打开官方样式预览工具,滚动页面看滚动条效果,不需要反复重启桌面或应用。
内容的提问来源于stack exchange,提问作者tim.t
相关产品推荐
相关产品推荐

