我正在试着做一些花哨的自动色彩对比度校正工作.我使用的是TailWind,我正在try 创建一些当对比度太低时自动更改 colored颜色 的CSS规则.
假设以下情况:
.bg-white .text-white {
color: black;
}
很简单.我们自动将白色背景上的白色文本更改为白色背景上的黑色文本.每当有人指定.text-white
时,他们就不必再担心指定的另一个更高的背景 colored颜色 超出了他们的控制范围,会违反WCAG可访问性指南.
然而,这就是我们的问题开始的地方.以下HTML将使白色文本变得难以辨认:
<div class="bg-white">
<div class="bg-black">
<span class="text-white">I was legible until you tried to be smart.</span>
</div>
</div>
有很多方法可以解决这个难题;但我想知道的是,是否有一种方法可以使用:has() Select 器来实现这一点.
我想要一些类似以下的东西:
.bg-white:not(:has(class*="bg-")) .text-white {
color: black;
}
我希望我说的是" Select BG-白色内的任何文本-白色,它没有任何其他具有类似于"BG-"的类的元素",因为这会改变背景 colored颜色 .
我的目标是让它只有最直接改变 colored颜色 的类被推定为背景 colored颜色 .