В CSS могут ли значения HSL быть плавающими? - PullRequest
7 голосов
/ 20 апреля 2011

Спецификация CSS3 указывает только на то, что:

Формат значения цвета HSLA в функциональной нотации - «hsla (», за которым следует оттенок в градусах, насыщенность иlightness в процентах и ​​an, за которым следует ')'.

Итак, я понимаю, что эти значения будут интерпретироваться не как целые числа, а как числа с плавающей запятой?Пример:

hsla(200.2, 90.5%, 10.2%, .2)

Это значительно расширило бы малый (по сравнению с RGB) диапазон цветов, охватываемых HSL.

Кажется, что в Chrome все хорошо отображаетсяхотя я не знаю, просто ли они анализируют его как значение INT или как.

Ответы [ 3 ]

4 голосов
/ 20 апреля 2011

Значения 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.

1 голос
/ 20 апреля 2011

AFAIK, каждый браузер приводит их к INT.Может быть.Если я ошибаюсь, вы все равно не сможете заметить разницу.Если это действительно имеет значение, почему бы не сделать снимки экрана, открыть их в фотошопе или использовать экранный измеритель цветаНикто здесь не получит однозначного ответа без его проверки, и для проверки потребуется 2 минуты ... так что ...

1 голос
/ 20 апреля 2011

Я бы точно не знал, но имеет смысл просто ввести плавающие числа и посмотреть, работает ли это? требуется две секунды, чтобы попытаться с десятичной дробью, и без ..

...