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

Стиль style = "color: #FFF;" сделать как # F0F0F0 или #FFFFFF?

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

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

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

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

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

4b9b3361

Ответ 1

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 docs state тот же метод.

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

div { width: 100px; height: 100px;  }
<div style="background-color:#f0f0f0;">#f0f0f0</div>
<div style="background-color:#fff;">#fff</div>
<div style="background-color:#ffffff;">#ffffff</div>

Ответ 2

спецификация CSS2 раздел 4.3.6 Цвета:

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

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

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

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

Ответ 3

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

  • 000 производит 000000
  • FFF производит FFFFFF
  • 876 производит 887766

... и т.д.

Ответ 4

Я чувствую, что должен поощрять людей не делать этого, так как это эквивалентно тому, что вы говорите кому-то, что хотите 15 чего-то, а затем ожидаете, что они появятся с 255. Какой грубый и странный способ сократить 0xFFFFFF. Это для меня "веб-дизайн" веб-дизайна.

Ответ 5

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

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

Это может представлять интерес http://www.websiteoptimization.com/speed/tweak/hex/