如何在CSS中原生将所有黑色基础色元素替换为指定深蓝色?
实现仅替换黑色元素为深蓝色的CSS方案
要只把原本是黑色的元素(包括浏览器默认黑色、显式设置#000的元素)换成深蓝色#003B4A,同时不影响已有其他颜色的元素,可以按以下步骤操作:
修改根元素继承色
浏览器里绝大多数文本元素的颜色是继承自:root或body的默认黑色,修改根元素的颜色后,所有继承默认色的元素会自动切换::root { color: #003B4A; }覆盖显式设置为黑色的元素
针对那些手动写了color: #000(或#000000、black)的元素,用属性选择器精准命中:/* 覆盖内联或样式表中显式设置的黑色 */ [color="#000"], [color="#000000"], [color="black"] { color: #003B4A !important; }提示:如果是外部/内部CSS里设置的
color: #000,可以去掉!important,把这段代码放在原有样式的后面就能覆盖。处理特殊元素的默认黑色
部分元素(比如按钮、输入框)的默认样式不继承根元素颜色,需要单独覆盖:/* 按钮类元素的默认文本色 */ button, input[type="button"], input[type="submit"], input[type="reset"] { color: #003B4A; } /* 表单输入类元素的默认文本色 */ input:not([type="button"]):not([type="submit"]):not([type="reset"]), textarea, select { color: #003B4A; } /* 列表项目符号颜色(保险起见单独设置) */ ul, ol { list-style-color: #003B4A; }统一伪元素颜色
对于::before/::after这类伪元素,让它们继承父元素颜色,避免单独设置黑色的情况:::before, ::after { color: inherit; }
如果你的项目用了CSS变量管理颜色,那更简单——直接把定义黑色的变量值改成深蓝色即可:
:root { --base-text-color: #003B4A; /* 原变量值为#000 */ }
内容的提问来源于stack exchange,提问作者Unax Gómez
相关产品推荐
相关产品推荐

