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

<p>нотация <code>rgb(255,255,255)</code> была доступна с css1. но <code>#ffffff</code> кажется гораздо более популярным.</p><p>очевидно, это немного более компактно. я знаю, что hex более тесно связан с нижележащими байтами, и понимаю, что было бы полезно проводить арифметику с этими значениями, но это не то, что вы собираетесь делать с css.</p><p>значения цвета, как правило, создаются дизайнерами (такими как я), которые никогда не встретят шестнадцатеричное представление где-либо еще, и они гораздо лучше знакомы с десятичным обозначением, которое является основным способом определения цвета в приложениях, которые они используют - фактически у меня есть встретил немало людей, которые не понимают, как данное шестнадцатеричное значение разбивается на компоненты rgb, и предположили, что оно вообще не имеет прямого отношения к цвету, как эталон системы цвета pantone (например, pms432).</p><p>итак, есть ли причина не использовать десятичную?</p>

<p>стоит отметить, что если вы хотите ввести значение rgba, шестнадцатеричная запись не поддерживается; то есть, вы не можете подделать это с #ffffffff. на самом деле, альфа-значение должно быть числом от 0,0 до 1,0 включительно. (проверьте <a href="http://css-tricks.com/rgba-browser-support/">эта страница</a> для поддержки браузера - как всегда, ie возглавляет пакет здесь.;))</p><p>поддержка цветов hsl и hsla - которая <em> очень </em> удобна для дизайнера - также обеспечивается синтаксисом, аналогичным стилю rgb (). если бы дизайнер использовал оба типа значений цвета в одной и той же таблице стилей, он мог бы выбрать десятичные значения вместо шестнадцатеричных кодов для согласованности.</p>

<p>я думаю, что это то, к чему ты привык. если вы привыкли к html, вы, вероятно, будете использовать hex, так как он очень часто использовался в html. если вы работаете в фоновом режиме, используете photoshop/corel/paintshoppro и т.д., то, скорее всего, вы привыкли к rgb-нотации, хотя многие программы в наши дни также содержат поле значений hex.</p><p>как уже говорилось, rgba может быть причиной, чтобы просто пойти с нотацией rgb - последовательность.</p><p>хотя, я думаю, это также зависит от сценария. если вам удобны оба варианта, вы можете просто переключаться между ними: <code>#fff</code> гораздо легче набрать, чем <code>rgb(255,255,255)</code>.</p><p>другой вопрос, почему люди будут говорить <code>#fff</code> вместо <code>white</code> (при условии, что большинство браузеров поддерживают это ключевое слово).</p><p>все дело в предпочтениях и удобочитаемости - если вы поддерживаете огромный css-файл, то можете посмотреть на значение цвета и узнать, какой это цвет, - это действительно хорошее преимущество. еще более выгодно использовать что-то вроде <a href="http://lesscss.org">less</a> или <a href="http://sass-lang.com/">sass</a> , чтобы добавить программируемость в css - например, с помощью констант. поэтому вместо того, чтобы говорить:</p><pre><code>#title { color: #abcdef; } </code></pre><p>вместо этого вы можете сделать следующее с less:</p><pre><code>@base-color: #abcdef; #title { color: @base-color; } </code></pre><p>поддержание css становится меньшей проблемой.</p><p>если вы беспокоитесь о производительности браузера, отображающего его результат, то это также может быть другим фактором по вашему выбору.</p><p>итак, в итоге, это сводится к:</p><ul> <li>фамильярность</li> <li>предпочтение</li> <li>ремонтопригодность</li> <li>спектакль</li> </ul>

<p>основная причина, вероятно, в компактности, как вы упомянули. <code>#ffffff</code> может быть даже сокращен до сокращенной записи <code>#fff</code>.</p><p>другая возможная причина заключается в том, что наблюдается ощутимое увеличение производительности за счет того, что браузеру не нужно преобразовывать нотацию <code>rgb</code>.</p>

<p>я всегда использовал hex, но сегодня я предпочитаю устанавливать свои значения как:</p><pre><code>rgb(82, 110, 188) </code></pre><p>в моих файлах css, поэтому, когда я хочу добавить непрозрачность, мне просто нужно переименовать rgb в rgba и добавить значение непрозрачности. преимущество в том, что мне не нужно преобразовывать шестнадцатеричное значение в rgb, прежде чем я смогу добавить прозрачность:</p><pre><code>rgba(82, 110, 188, 0.5) </code></pre>

<p>традиционно html всегда использовал шестнадцатеричные цвета, так что это перешло в css. подумайте <code><font color="#ffffff"></code></p>

<p>css был изобретен разработчиками программного обеспечения, а не дизайнерами. разработчики программного обеспечения живут и дышат гексагоном. с моих старых дней c64 я все еще могу читать большинство шестнадцатеричных чисел, не задумываясь. а9, кто-нибудь?</p>

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

<p>вероятно, немного скорости, когда цвет интерпретируется браузером. в противном случае некоторые люди из фона разработки могут знать, как составлять цвета из компонентов rgb при написании кода, а некоторые другие из фона программирования, вероятно, более склонны использовать значения hex.</p>

<p>возможно, я слишком долго занимался html, но мне проще думать о значениях hex. большая часть предопределенной цветовой палитры для html аккуратно отображается на значения hex. использование сокращенного формата также дает вам автоматические "безопасные для сети" цвета, хотя это не является проблемой в дни 32-битных цветных дисплеев.</p>

<p><strong>hex наиболее распространен по историческим причинам.</strong></p><p>до того, как css стал обычным явлением в веб-разработке, в html-тегах указывались цвета, и наиболее часто используемый и поддерживаемый способ указать цвет - это использовать значения hex.</p>

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