it-swarm.com.ru

Есть ли веские причины для использования шестнадцатеричной над десятичной для значений цвета RGB в CSS?

Нотация rgb(255,255,255) была доступна с CSS1. Но #ffffff кажется гораздо более популярным.

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

Значения цвета, как правило, создаются дизайнерами (такими как я), которые никогда не встретят шестнадцатеричное представление где-либо еще, и они гораздо лучше знакомы с десятичным обозначением, которое является основным способом определения цвета в приложениях, которые они используют - фактически у меня есть встретил немало людей, которые не понимают, как данное шестнадцатеричное значение разбивается на компоненты RGB, и предположили, что оно вообще не имеет прямого отношения к цвету, как эталон системы цвета Pantone (например, PMS432).

Итак, есть ли причина не использовать десятичную?

58
e100

Шестнадцатеричные значения легче скопировать и вставить из вашего любимого графического редактора.

Значения RGB легче манипулировать с Javascript.

(Мое любимое значение цвета Hex - #EDEDED, а сайт, который мы создали для клиента, участвующего в автоспорте, имел цвет фона # F1F1F1 :-)

Издание.

32
edeverett

Стоит отметить, что если вы хотите ввести значение RGBA, шестнадцатеричная запись не поддерживается; то есть, вы не можете подделать это с #FFFFFFff. На самом деле, альфа-значение должно быть числом от 0,0 до 1,0 включительно. (Проверьте эта страница для поддержки браузера - как всегда, IE возглавляет пакет здесь.;))

Поддержка цветов HSL и HSLA - которая очень удобна для дизайнера - также обеспечивается синтаксисом, аналогичным стилю RGB (). Если бы дизайнер использовал оба типа значений цвета в одной и той же таблице стилей, он мог бы выбрать десятичные значения вместо шестнадцатеричных кодов для согласованности.

19
WCWedin

Я думаю, что это то, к чему ты привык. Если вы привыкли к HTML, вы, вероятно, будете использовать HEX, так как он очень часто использовался в HTML. Если вы работаете в фоновом режиме, используете Photoshop/Corel/PaintShopPro и т.д., То, скорее всего, вы привыкли к RGB-нотации, хотя многие программы в наши дни также содержат поле значений HEX.

Как уже говорилось, RGBA может быть причиной, чтобы просто пойти с нотацией RGB - последовательность.

Хотя, я думаю, это также зависит от сценария. Если вам удобны оба варианта, вы можете просто переключаться между ними: #fff гораздо легче набрать, чем rgb(255,255,255).

Другой вопрос, почему люди будут говорить #fff вместо White (при условии, что большинство браузеров поддерживают это ключевое слово).

Все дело в предпочтениях и удобочитаемости - если вы поддерживаете огромный CSS-файл, то можете посмотреть на значение цвета и узнать, какой это цвет, - это действительно хорошее преимущество. Еще более выгодно использовать что-то вроде LESS или Sass , чтобы добавить программируемость в CSS - например, с помощью констант. Поэтому вместо того, чтобы говорить:

#title { color: #abcdef; }

Вместо этого вы можете сделать следующее с LESS:

@base-color: #abcdef;

#title { color: @base-color; }

Поддержание CSS становится меньшей проблемой.

Если вы беспокоитесь о производительности браузера, отображающего его результат, то это также может быть другим фактором по вашему выбору.

Итак, в итоге, это сводится к:

  • Фамильярность
  • Предпочтение
  • Ремонтопригодность
  • Спектакль
8
jamiebarrow

Основная причина, вероятно, в компактности, как вы упомянули. #ffffff может быть даже сокращен до сокращенной записи #fff.

Другая возможная причина заключается в том, что наблюдается ощутимое увеличение производительности за счет того, что браузеру не нужно преобразовывать нотацию rgb.

6
Bill the Lizard

Я всегда использовал hex, но сегодня я предпочитаю устанавливать свои значения как:

rgb(82, 110, 188)

в моих файлах CSS, поэтому, когда я хочу добавить непрозрачность, мне просто нужно переименовать rgb в rgba и добавить значение непрозрачности. Преимущество в том, что мне не нужно преобразовывать шестнадцатеричное значение в rgb, прежде чем я смогу добавить прозрачность:

rgba(82, 110, 188, 0.5)
6
chrisweb

Традиционно HTML всегда использовал шестнадцатеричные цвета, так что это перешло в CSS. Подумайте <font color="#ffffff">

6
Greg

CSS был изобретен разработчиками программного обеспечения, а не дизайнерами. Разработчики программного обеспечения живут и дышат гексагоном. С моих старых дней C64 я все еще могу читать большинство шестнадцатеричных чисел, не задумываясь. А9, кто-нибудь?

4
Aaron Digulla

Различные вещи будут принимать одно шестнадцатеричное значение, где они могут по-разному вводить три десятичных значения. Существует также тот факт, что это всегда 6 символов (или 3, по общему признанию - плюс #), что облегчает просмотр их списка.

Просто пара случайных мыслей, чтобы добавить в микс ...

4
Jon Skeet

Вероятно, немного скорости, когда цвет интерпретируется браузером. В противном случае некоторые люди из фона разработки могут знать, как составлять цвета из компонентов RGB при написании кода, а некоторые другие из фона программирования, вероятно, более склонны использовать значения HEX.

2
Elzo Valugi

Возможно, я слишком долго занимался HTML, но мне проще думать о значениях HEX. Большая часть предопределенной цветовой палитры для HTML аккуратно отображается на значения HEX. Использование сокращенного формата также дает вам автоматические "безопасные для сети" цвета, хотя это не является проблемой в дни 32-битных цветных дисплеев.

1
Dan Diplo

HEX наиболее распространен по историческим причинам.

До того, как CSS стал обычным явлением в веб-разработке, в HTML-тегах указывались цвета, и наиболее часто используемый и поддерживаемый способ указать цвет - это использовать значения HEX.

1
user636044

нет уважительной причины, кроме личных предпочтений.

1
Christopher Kelly