我想通过考虑具有高对比度模式(或者可能只是暗模式)的用户来使网站更易于访问。现在我遇到了自定义单选按钮的问题,这些按钮只是具有圆形边框的 HTML 元素:当用户将浏览器的默认背景颜色设置为黑色时,我的元素的背景颜色也是黑色,看起来像一个选中的选项,即使我将此元素的背景颜色设置为白色。
为了防止这种情况,我把白色边框加厚了,所以它看起来像一个白色背景。但这也产生了问题,有时在某些缩放级别或分辨率下,我的按钮中间会有一个小黑点。
有什么方法可以防止浏览器覆盖我在 CSS 中声明的背景颜色?有什么我错过的东西,比如阻止这种行为的属性吗?
我也可以替换这些元素或以不同的方式实现它们,但此时我只是好奇是否没有任何简单的解决方案。
我的单选按钮的样式如下所示:
input.check + label:before {
display: inline-block;
content: "";
width: 1rem;
height: 1rem;
background: #fefefe;
border: 0.2rem solid #fefefe;
border-radius: 50%;
position: absolute;
left: -1rem;
}
input.check:checked + label:before {
background: #000000;
}
我通过将背景颜色设置为黑色来制作单选按钮的“选中”外观 - 就像浏览器在这种情况下所做的那样。
编辑
到目前为止,对于改进自定义单选按钮的可访问性,有很好的答案。对我的问题更具体一点:
但这似乎会覆盖每个背景颜色,无论您为每个元素指定什么。有没有办法让这种覆盖例外?