Почему HTML принимает как цвет произвольную цепь?

После того, как скроллировали страницу и поместив ему в стоимость цвета фона произвольную цепь как например "chucknorris" фон становится красным. Почему происходит это?

test

Первоначальный вопрос: Why does HTML think “chucknorris” is в цвет?

21
задан 23.05.2017, 15:39
2 ответа

Снабди ссылками: Why does HTML think “chucknorris” is в цвет?

Если у тебя есть недействительные символы в коде цвета, который написан в шестнадцатеричной нотации, эти символы к ним отнеслись как 0. Шестнадцатеричное число может содержать символы [0-9a-f], любой другой расположенный напротив символ заменен с 0.

Для chucknorris:

  • Заменять недействительные символы:
    chucknorrisc00c0000000
  • Наполнять с 0 до тех пор, пока число символов не является делимым из-за 3:
    c00c0000000 (11) → c00c 0000 0000 (12)
  • Форматировать в нотации RGB:
    rgb(c00c, 0000, 0000)
  • Отсекать каждую стоимость в два символа:
    rgb(c0, 00, 00)
  • Переводить шестнадцатеричного в десятичный:
    rgb(192, 0, 0) [ == #C00000]

Вытекающий цвет: красный.

Другие сходные цвета: crap, ninjaturtle, sick, grass.

18
ответ дан 01.12.2019, 08:17
  • 1
    Покажись traducci и # 243; n сделанная с каким-то инструментом, ты можешь улучшать ее? Фраза " Символы inv и # 225; lidos в c и # 243; digos цвета HEX они равны cero" она смущена. – Alan 02.12.2015, 18:50
  • 2
    @Zero не с инструментом, только мой espa и # 241; ol плохо. Я хочу сказать, что, если у тебя есть символы inv и # 225; lidos в одном c и # 243; я говорю о цвете, что он написан в notaci и # 243; n к HEX, этим символам отнеслись как 0. – ArtOfCode 02.12.2015, 18:56

Это след дней Netscape:

Недостающие цифры относятся друг к другу как 0 [...]. Неправильной цифры просто интерпретируется как 0. Например стоимость # f0f0f0, f0f0f0, F0F0F, #FxFxFx и FxFxFx - все равные.

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

Если мы применяем правила, упомянутые во вводе blog, мы получаем следующее:

Заменять все шестнадцатеричные не действительные символы с 0's

ChuckNorris se convierte a c00c0000000

Наполняет следующее полное число делимых символов из-за 3 (11-> 12)

c00c 0.000 0.000

Делить на три равные группы, с каждым компонентом, который представляет компонент соответствующего цвета цвета RGB:

RGB (c00c, 0000, 0000)

Отсекать каждый из аргументов от правой стороны до 2 символов

Мы получаем следующий результат:

RGB (c0, 00, 00) = # C00000 o RGB (192, 0, 0)

Здесь пример, который показывает признак bgcolor в действии, чтобы производить этот "невероятный" образец цвета:

<table>
  <tr>
    <td bgcolor="chucknorris" cellpadding="8" width="100" align="center">chuck norris</td>
    <td bgcolor="mrt" cellpadding="8" width="100" align="center" style="color:#ffffff">Mr T</td>
    <td bgcolor="ninjaturtle" cellpadding="8" width="100" align="center" style="color:#ffffff">ninjaturtle</td>
  </tr>
  <tr>
    <td bgcolor="sick" cellpadding="8" width="100" align="center">sick</td>
    <td bgcolor="crap" cellpadding="8" width="100" align="center">crap</td>
    <td bgcolor="grass" cellpadding="8" width="100" align="center">grass</td>
  </tr>
</table>

Это также отвечает на другую часть вопроса; почему bgcolor = "chucknorr" он производит желтый цвет? Ну, если мы применяем правила, стоимость string:

c00c00000 => c00 c00 000 => c0 c0 00 [RGB (192, 192, 0)]

То, что дает желтый цвет ясное золото. Как цепь инициализируется с 9 символами, мы поддерживаем вторую C в этом случае, следовательно закончись в конечной стоимости цвета.

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

первоначального ответа @dash в SOen.

19
ответ дан 01.12.2019, 08:17
  • 1
    Хорошая и широкий explicaci и # 243; n – Joel Ibaceta 02.12.2015, 19:00
  • 2
    Невероятный, что bgcolor функционировал tambi и # 233; n в подмостках в настоящих браузерах – Ruslan López 02.12.2015, 19:01
  • 3
    Это самый полный ответ. – Gemasoft 30.01.2016, 00:25
  • 4
    плохое состоит в том, что никогда он не упоминает о первоначальном авторе комментария stackoverflow.com/questions/8318911/… – Marcogomesr 26.07.2017, 16:11
  • 5
    @marcogomes привет Я Помечаю, обычно ссылаются на ответ, если он состоит в том, что это копия (или traducció n) той же самой, ссылка на вопрос уже ее добавил Руслан к вопросу этого thread. – Jorgesys♦ 26.07.2017, 17:06