Существуют ли какие-либо недостатки в использовании имен цветов вместо цветовых кодов в CSS?
Например, запись red
более эффективна, чем #cc0000
. Он имеет меньше символов, занимает меньше места и легче запомнить.
Есть ли какие-либо нижние стороны для использования имен цветов по шестнадцатеричным кодам или значениям RGB? Это включает в себя программирование в среде с несколькими разработчиками.
Ответы
Ответ 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
по-моему, это вопрос предпочтения. если цвет такой же простой, как красный, черный, серый, синий, белый и т.д., используйте слово вместо гексагона.