Подтвердить что ты не робот

Существуют ли какие-либо недостатки в использовании имен цветов вместо цветовых кодов в CSS?

Например, запись red более эффективна, чем #cc0000. Он имеет меньше символов, занимает меньше места и легче запомнить.

Есть ли какие-либо нижние стороны для использования имен цветов по шестнадцатеричным кодам или значениям RGB? Это включает в себя программирование в среде с несколькими разработчиками.

4b9b3361

Ответ 1

Различные браузеры могут не согласиться с тем, что означают некоторые названия цветов. Для всех 16 миллионов 24-битных цветов нет имен. На самом деле есть только 17 цветных имен W3C. Вероятно, использовать их можно.

Лично я использую систему шаблонов во время сборки, чтобы предварительно обработать мои файлы CSS, чтобы я мог поддерживать стандартный набор цветов сайта и ссылаться на них по имени. Таким образом, я получаю лучшее из обоих миров: я точно знаю, что такое значения цвета RGB, но я могу использовать более простые имена в CSS.

(Конечно, до сих пор невозможно точно узнать, как будет выглядеть цвет в данном браузере пользователя.)

edit — за 5 лет с момента написания этого ответа препроцессоры, такие как Less и Sass, стали довольно распространенными. Они предоставляют некоторые очень сложные инструменты для управления цветами (и многое другое) в источниках CSS.

Ответ 2

Я рекомендую вам следовать рекомендациям W3C:

Все из них (CSS Level 1, Level 2 и Level 3) показывают, что использование имен цветов вполне приемлемо, но какие из них приемлемы, зависит от спецификации.

Спецификация CSS1

Спецификация CSS1 рекомендует использовать названия цветов как допустимую замену шестнадцатеричных кодов и RGB-кодов.

6.3 Цветные единицы

Предлагаемый список имен ключевых слов: aqua, black, blue, фуксия, серый, зеленый, лайм, бордовый, темно-синий, оливковый, фиолетовый, красный, серебристый, чирок, белый и желтый. Эти 16 цветов взяты из Windows VGA и их значения RGB не определены в этом спецификация.

Спецификация CSS2

Теперь вы можете использовать название цвета orange! Количество до 17 цветов. Спецификация CSS2 для справки.

Цвета CSS3 и X11

CSS3 позволяет использовать SVG 1.0 цвета X11 для использования в свойствах CSS (а также hsl() значения). Это расширяет количество имен цветов до 147 цветов. Любое из этих имен цветов может использоваться в любом браузере, который поддерживает спецификацию SVG 1.0, которая IE9 или более новая.

Это также означает, что список цветов, представленных в вопросе, в основном недействителен.

Рекомендуемое использование

Если вы хотите поддерживать устаревшие браузеры, придерживайтесь веб-безопасных исходных 16 имен цветов, поскольку цвета X11 не поддерживаются. В противном случае вы можете использовать любое из 147 имен цветов, указанных в спецификации X11.

Все браузеры должны соблюдать спецификацию в отношении эквивалентных шестнадцатеричных кодов. Время, затрачиваемое парсером на чтение названий цветов, фактически, если не точно, совпадает с использованием шестнадцатеричного значения, значения rgb или значения hsl().

Для меня это более читаемо для написания ваших HEX-кодов в нижнем регистре. Например, # 8b88b6, очевидно, более читабельна, чем # 8B88B6. Кроме того, я предпочитаю использовать сокращенный цвет HEX вместо полного кода (# 666 вместо # 666666), поскольку он более эффективен.

Ответ 3

лично, я предпочитаю использовать шестнадцатеричные коды из-за 2 причин

  • проще скопировать шестнадцатеричный код из Photoshop
  • вы можете использовать шестнадцатеричные коды в таблице стилей, но в противном случае вам придется смешивать два стиля (шестнадцатеричные и цветовые имена). поэтому ваша таблица стилей может быть более однородной/согласованной.

Это предполагает, что вы используете другие цвета, такие как простой красный, черный, белый и т.д. В среде с несколькими разработчиками я бы сказал, что шестнадцатеричные коды лучше, потому что они более универсальны (каждый разработчик точно знает, что такое цвет есть).

Ответ 4

Я предпочитаю дальнейшую оптимизацию, #c00 для красного. Если вы собираетесь использовать основной цвет или любой цвет, похожий на #aabbcc, вы можете использовать сокращенное обозначение #abc.

Ответ 5

Я использую имена цветов для прототипирования, отладки и настройки действительно основных монохромных цветовых схем, которые затем созревают для тематики с гипер-специфическими шестнадцатеричными цветами. Это позволяет легко идентифицировать тему. Это также более читаемо для человека; меньше напряжения мозга при попытке мгновенно визуализировать происходящее.

.component {
    background-color: black;
    color: white;
}

... затем в файле theming...

.some-theme .component {
    background-color: #5f5f5c;
    color: #fafafc;
}

Ответ 6

Это действительно сводится к вашему стилю кодирования. Я придерживаюсь шестнадцатеричных значений для согласованности - цвет всегда отформатирован как #000 или #000000, и мне не нужно беспокоиться о переходе между namd и неназванными цветами.

В конце концов, это решение, которое вы и ваша команда должны будете сделать самостоятельно. Все о ваших предпочтениях.

Ответ 7

Лично я предпочитаю, чтобы все цвета в файле CSS определялись таким же образом, если это возможно.

Таким образом, мне не нужно думать иначе, когда я вижу разные цвета (например, red, #cd876f и rgba(255,255,0,0.4)).

Я также предпочитаю цветные обозначения, которые соответствуют тому, что я вижу при определении цвета в проекте Im Impression. Цветовая палитра Photoshops дает значения RGB и hex, среди прочих, но не дает названия цветов CSS. (Другие инструменты проектирования могут сделать это.)

Ответ 8

Предыдущие ответы выглядят устаревшими.

Когда вы поддерживаете браузер CSS3, который является браузером с IE9, вы можете использовать имена цветов в CSS. В HTML поддерживается только 16 исходных цветов в Интернете.

Вопрос в том, есть ли недостатки. Я думаю, что есть несколько:

  • Некоторые названия цветов просто плохие. Примеры:
    • Лазурь обычно считается гораздо более темным цветом.
    • Зеленый лужайки не похож на лужайку, которую я когда-либо видел.
    • Фиолетовый больше похож на то, что я назвал бы розовым.
  • Труднее создать немного более темную или более легкую версию цвета, изменив его шестнадцатеричные значения. Например, более темный вариант #DCDCDC будет #DADADA, но если бы я начал с имени цвета gainsboro, я бы не имел никакой идеи.
  • Расчёты Javascript более сложны для имени.

Источники: https://developer.mozilla.org/en-US/docs/Web/CSS/color_value и http://caniuse.com/#search=css3%20colors

Ответ 9

Я думаю, что названия цветов более наглядны... И это хорошая причина для его использования, когда это возможно.

Ответ 10

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