擅长:python、mysql、java
<p>正如其他人在评论/回答中提到的,两种颜色之间的对比非常重要。在</p>
<p>W3已经创建了一个方法来定义颜色之间的最小对比度,以便通过不同级别的可访问性。在</p>
<p>它们提供了描述<a href="https://www.w3.org/TR/UNDERSTANDING-WCAG20/visual-audio-contrast-contrast.html" rel="nofollow">here</a>和计算它的公式在同一页的底部<a href="https://www.w3.org/TR/UNDERSTANDING-WCAG20/visual-audio-contrast-contrast.html#key-terms" rel="nofollow">here</a>:</p>
<pre><code>contrast ratio = (L1 + 0.05) / (L2 + 0.05)
</code></pre>
<p>对于这个显然很简单的公式,您需要使用另一个公式来计算两种颜色的相对亮度<code>L1</code>和{<cd2>},您可以找到<a href="https://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef" rel="nofollow">here</a>:</p>
^{pr2}$
<p>RsRGB、GsRGB和BsRGB定义为:</p>
<pre><code>RsRGB = R8bit/255
GsRGB = G8bit/255
BsRGB = B8bit/255
</code></pre>
<p>文本与背景的最小对比度应为AA级的4.5:1和AAA级的7:1。这仍然为创造漂亮的设计留下了空间。在</p>
<p>有一个<a href="https://leaverou.github.io/contrast-ratio/" rel="nofollow">implementation in JS by Lea Verou</a>的例子。在</p>
<p>这不会像你要求的那样给你最接近的颜色,因为在一个独特的背景下,会有不止一种正面颜色给出相同的对比度结果,但这是一种计算对比度的标准方法。在</p>