Corteza项目中BootstrapVue样式选择器问题的分析与修复
问题背景
在Corteza项目的2024.9.x分支中,开发人员发现了一个CSS样式选择器的语法问题。该问题位于server/assets/src/scss/main/18201131_bootsrapvue.scss文件中,涉及到一个无效的CSS伪类选择器使用方式。
问题分析
文件中包含以下SCSS代码片段:
a,
.btn {
&.b-avatar:hover:not(.disabled):not(disabled) {
z-index: 1;
}
}
这段代码的问题在于:not(disabled)选择器的使用方式不正确。在CSS规范中,:not()伪类选择器接受的参数必须是一个简单选择器(simple selector),而disabled本身并不是一个有效的选择器类型。
正确的解决方案
正确的做法应该是使用属性选择器来匹配具有disabled属性的元素。修改后的代码应为:
a,
.btn {
&.b-avatar:hover:not(.disabled):not([disabled]) {
z-index: 1;
}
}
这个修改将:not(disabled)改为:not([disabled]),表示"匹配不具有disabled属性的元素"。
技术细节解析
-
:not()伪类选择器:这是CSS3引入的一个否定伪类,它接受一个简单选择器作为参数,匹配不符合该选择器的元素。 -
简单选择器类型:CSS中的简单选择器包括:
- 类型选择器(如
div) - 类选择器(如
.disabled) - ID选择器(如
#main) - 属性选择器(如
[disabled]) - 伪类(如
:hover)
- 类型选择器(如
-
disabled属性的特殊性:在HTML中,disabled是一个布尔属性,当它出现在元素上时,无论其值是什么,都会使元素处于禁用状态。
影响范围
这个样式规则主要影响BootstrapVue组件中的头像(b-avatar)元素,当它们作为链接(a)或按钮(.btn)的子元素时的悬停效果。修复后可以确保禁用状态的元素不会获得z-index: 1的样式。
最佳实践建议
-
在使用
:not()伪类时,始终确保传入的参数是一个有效的简单选择器。 -
对于布尔属性的检查,优先使用属性选择器
[attr]而不是类名选择器。 -
在SCSS中嵌套选择器时,注意生成的CSS选择器是否符合规范。
这个修复虽然看起来很小,但它确保了样式表的规范性和兼容性,避免了潜在的浏览器解析问题。
Kimi-K2.5Kimi K2.5 是一款开源的原生多模态智能体模型,它在 Kimi-K2-Base 的基础上,通过对约 15 万亿混合视觉和文本 tokens 进行持续预训练构建而成。该模型将视觉与语言理解、高级智能体能力、即时模式与思考模式,以及对话式与智能体范式无缝融合。Python00- QQwen3-Coder-Next2026年2月4日,正式发布的Qwen3-Coder-Next,一款专为编码智能体和本地开发场景设计的开源语言模型。Python00
xw-cli实现国产算力大模型零门槛部署,一键跑通 Qwen、GLM-4.7、Minimax-2.1、DeepSeek-OCR 等模型Go06
PaddleOCR-VL-1.5PaddleOCR-VL-1.5 是 PaddleOCR-VL 的新一代进阶模型,在 OmniDocBench v1.5 上实现了 94.5% 的全新 state-of-the-art 准确率。 为了严格评估模型在真实物理畸变下的鲁棒性——包括扫描伪影、倾斜、扭曲、屏幕拍摄和光照变化——我们提出了 Real5-OmniDocBench 基准测试集。实验结果表明,该增强模型在新构建的基准测试集上达到了 SOTA 性能。此外,我们通过整合印章识别和文本检测识别(text spotting)任务扩展了模型的能力,同时保持 0.9B 的超紧凑 VLM 规模,具备高效率特性。Python00
KuiklyUI基于KMP技术的高性能、全平台开发框架,具备统一代码库、极致易用性和动态灵活性。 Provide a high-performance, full-platform development framework with unified codebase, ultimate ease of use, and dynamic flexibility. 注意:本仓库为Github仓库镜像,PR或Issue请移步至Github发起,感谢支持!Kotlin08
VLOOKVLOOK™ 是优雅好用的 Typora/Markdown 主题包和增强插件。 VLOOK™ is an elegant and practical THEME PACKAGE × ENHANCEMENT PLUGIN for Typora/Markdown.Less00