프로그래밍 언어/HTML,CSS,JS

HTML가 "chucknorris"를 색상이라고 생각하는 이유

Rateye 2021. 8. 12. 10:36
728x90
반응형
질문 : HTML은 왜 "chucknorris"가 색상이라고 생각합니까?

HTML에서 배경색으로 입력 할 때 특정 임의의 문자열이 색상을 생성하는 이유는 무엇입니까?

예를 들면 :

 
 
<body bgcolor="chucknorris"> test </body>

... 모든 브라우저와 플랫폼 에서 빨간색 배경 의 문서를 생성합니다.

반면에 chucknorr 는 노란색 배경을 생성합니다!

여기서 무슨 일이 일어나고 있습니까?

답변

넷스케이프 시대의 이월입니다.

누락 된 숫자는 0 [...]으로 처리됩니다. 잘못된 숫자는 단순히 0으로 해석됩니다. 예를 들어 # F0F0F0, F0F0F0, F0F0F, #FxFxFx 및 FxFxFx 값은 모두 동일합니다.

그것은 다양한 길이의 색상 값 등을 포함하여 매우 자세하게 다루는 Microsoft Internet Explorer의 색상 구문 분석에 대한 블로그 게시물입니다.

블로그 게시물에서 규칙을 차례로 적용하면 다음과 같은 결과가 나타납니다.

  1. 유효하지 않은 모든 16 진수 문자를 0으로 바꿉니다.
    chucknorris becomes c00c0000000
  2. 3으로 나눌 수있는 다음 총 문자 수 (11 → 12)까지 채 웁니다.
    c00c 0000 0000
  3. 각 구성 요소는 RGB 색상의 해당 색상 구성 요소를 나타내는 세 개의 동일한 그룹으로 분할됩니다.
    RGB (c00c, 0000, 0000)
  4. 오른쪽에서 두 문자로 각 인수를 자릅니다.

 

 

마지막으로 다음과 같은 결과가 나타납니다.

RGB (c0, 00, 00) = #C00000 or 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" 이 노란색을 생성합니까? 규칙을 적용하면 문자열은 다음과 같습니다.

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

밝은 노란색 금색을 제공합니다. 문자열이 9 자로 시작하므로 이번에는 두 번째 'C'를 유지하므로 최종 색상 값이됩니다.

color="crap" 을 할 수 있다고 지적했을 때 이것을 만났습니다. 그리고 그것은 갈색으로 나옵니다.

출처 : https://stackoverflow.com/questions/8318911/why-does-html-think-chucknorris-is-a-color
728x90
반응형