Значения HSL преобразуются в шестнадцатеричные значения RGB перед их передачей в систему. Устройство должно обрезать любое результирующее значение RGB, находящееся за пределами "гаммы устройства" - диапазона цветов, которые могут быть отображены - до отображаемого значения. Значения RGB обозначаются в шестнадцатеричном формате. Это определенный алгоритм для браузеров для преобразования значений HSL в значения RGB. Поведение округления не определено стандартом - и существует несколько способов округления, так как в C или C ++ встроенной функции округления не существует.
HOW TO RETURN hsl.to.rgb(h, s, l):
SELECT:
l<=0.5: PUT l*(s+1) IN m2
ELSE: PUT l+s-l*s IN m2
PUT l*2-m2 IN m1
PUT hue.to.rgb(m1, m2, h+1/3) IN r
PUT hue.to.rgb(m1, m2, h ) IN g
PUT hue.to.rgb(m1, m2, h-1/3) IN b
RETURN (r, g, b)
С предлагаемая рекомендация
Другими словами, вы должны иметь возможность представлять тот же диапазон цветов в HSLA, что и в RGB, используя дробные значения для HSLA.