Chrome 94版本更新后Spectre CSS的meters组件失效,求修复方案
Spectre CSS meters组件Chrome 94+兼容修复方案
Chrome 94版本更新后调整了<meter>原生标签的默认UA样式,原有Spectre CSS的meters组件规则被默认样式覆盖,导致显示异常,可通过以下方案修复:
- 方案1:追加全局自定义CSS
将以下CSS代码添加到项目全局样式文件中,确保样式加载顺序晚于Spectre CSS文件即可生效:
/* 重置meter元素默认外观 */ .meter { -webkit-appearance: none; appearance: none; height: 1rem; width: 100%; border: none; background: #e7e9ed; border-radius: 0.1rem; } /* Webkit内核浏览器轨道样式修复 */ .meter::-webkit-meter-bar { background: #e7e9ed; border: none; border-radius: 0.1rem; } /* 不同阈值填充样式修复(webkit) */ .meter::-webkit-meter-optimum-value { background: #32c671; border-radius: 0.1rem; } .meter::-webkit-meter-suboptimum-value { background: #ffb700; border-radius: 0.1rem; } .meter::-webkit-meter-even-less-good-value { background: #e85600; border-radius: 0.1rem; } /* 火狐浏览器兼容 */ .meter::-moz-meter-bar { border-radius: 0.1rem; } .meter:-moz-meter-optimum::-moz-meter-bar { background: #32c671; } .meter:-moz-meter-sub-optimum::-moz-meter-bar { background: #ffb700; } .meter:-moz-meter-sub-sub-optimum::-moz-meter-bar { background: #e85600; }
方案2:直接修改Spectre源码
找到Spectre CSS源码中_experimentals.scss里的meters相关规则,用上面的样式替换原有规则后重新编译即可。方案3:替换为兼容组件
无需修改样式,直接使用Spectre自带的progress组件替代meters组件,两者视觉效果一致,且不存在高版本浏览器兼容问题。
内容的提问来源于stack exchange,提问作者cafc
相关产品推荐
相关产品推荐

