Действительно разрабатывает = “цвет: #FFF”; представить как #F0F0F0 или #FFFFFF?

При определении цветов с помощью "стенографию, шестнадцатеричную" (style="color: #FFF;"), есть ли определенный метод для расширения стенографии? (style="color: #F0F0F0;" или style="color: #FFFFFF;")

Все браузеры используют тот же метод расширения? Это поведение спецификацией (если так, где это определяется)? Метод расширения, возможно, варьируется между CSS 1/2/3?

Я заметил, что "большинство браузеров" расширяется до #FFFFFF.

Есть ли какие-либо другие места (за пределами HTML/CSS), где эта краткая нотация позволяется, но метод расширения отличается?

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

61
задан Dolph 24 May 2010 в 19:12
поделиться

4 ответа

CSS 2.1 ( http://www.w3.org/TR/CSS2/syndata.html#value-def-color ):

Три- цифровая нотация RGB (#rgb) преобразуется в шестизначную форму (#rrggbb) путем копирования цифр, а не добавления нулей. Например, # fb0 заменяется на # ffbb00. Это гарантирует, что белый цвет (#ffffff) может быть указан с помощью краткой записи (#fff), и устраняет любые зависимости от глубины цвета дисплея.

Формулировки CSS 1 , CSS 3 одинаковы. В проекте CSS 4 говорится то же самое.

В документах Internet Explorer и Firefox указывается один и тот же метод.

В качестве практического примера ознакомьтесь с этим фрагментом, который содержит 3

стилей

 div {width: 100px; высота: 100 пикселей; } 
 
# f0f0f0
# fff
# ffffff

В Mac OS X 10.6 все Firefox 3.6, Opera 10.10, Safari 4 отображали #fff как #ffffff .

Behavior in different browsers

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

76
ответ дан 24 November 2019 в 17:19
поделиться

Раздел CSS2 spec 4.3.6 Цвета:

Цветовая модель RGB используется в числовые цветовые характеристики. Эти во всех примерах указан один и тот же цвет:

 em {color: # f00} / * #rgb * /
em {color: # ff0000} / * #rrggbb * /
em {цвет: rgb (255,0,0)}
em {цвет: rgb (100%, 0%, 0%)}

Формат значения RGB в шестнадцатеричное представление - это '#' сразу за ними следуют три или шесть шестнадцатеричных символов. В трехзначное обозначение RGB (#rgb) преобразован в шестизначную форму (#rrggbb) путем копирования цифр, а не добавляя нули. Например, # fb0 расширяется до # ffbb00. Это гарантирует, что белый (#ffffff) можно указать с помощью сокращенное обозначение (#fff) и удаляет любые зависимости от глубины цвета дисплей.

Поскольку все современные браузеры поддерживают CSS, вы можете предположить, что он будет работать таким образом на ваших веб-сайтах и ​​веб-приложениях.

17
ответ дан 24 November 2019 в 17:19
поделиться

При тестировании в IE8, Firefox 3.6 и Google Chrome 5.0 beta все три браузера повторяют шестнадцатеричную цифру:

  • 000 дает 000000
  • FFF дает FFFFFF
  • 876 дает 887766

... и так вперед.

6
ответ дан 24 November 2019 в 17:19
поделиться

Я не знаю ни одного браузера, который бы не расширял #FFF до #FFFFFF. Мне было бы интересно узнать, что, по вашему мнению, нет - или вы имеете в виду, что некоторые продолжают показывать #FFF?

Однако, как я понял, #FFF является допустимым сокращением, а # F0 также (правильно) развернуть до # F0F0F0.

Это может быть интересно http://www.websiteoptimization.com/speed/tweak/hex/

1
ответ дан 24 November 2019 в 17:19
поделиться