0 szavazat
(4,8e pont) által 
által újranyitott

Miért van az, hogy véletlenszerű string-ekből szín lesz, ha háttérszínként adod meg őket HTML-ben?
Például:

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

Az eredmény pedig egy piros hátterű dokument lesz mindegyik böngészőben:

Külön érdekesség, hogy amíg chucknorris piros hátteret eredményez, addig chucknorr sárgát.

Mi történik itt?

1 válasz

0 szavazat
(4,8e pont) által 
által szerkesztett
 
Legjobb válasz

Ez még a Netscape idejéből maradt fent:

A hiányzó számjegyek 0[...]-ként vannak kezelve. A helytelen számjegy sima 0-ként van értelmezve. Például a következő értékek: #F0F0F0, F0F0F0, F0F0F, #FxFxFx és FxFxFx mind ugyanazok.

Ha alkalmazzuk ezeket a szabályokat, akkor a következőt kapjuk:

  1. Helyettesíts be minden érvénytelen hexadecimális karaktert 0-kkal

    chucknorris -ból c00c0000000 lesz

  2. Kerekíts fel minden számot a következő 3-mal osztható számra (pl. 11 -> 12)

    c00c 0000 0000

  3. Szedd őket 3 egyforma csoportba, ahol mindegyik tag a hozzátartozó színkomponens értéke:

    RGB (c00c, 0000, 0000)

  4. Minden elemet csökkents le 2 karakterre jobbról

És a végeredmény a következő lesz:

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

Ami piros színnek felel meg. :)

Itt egy példa, ami bemutatja a bgcolor-t, amikor éppen elképesztő színeket állít elő:

<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>

És az eredmény:

Ez azt is megválaszolja, hogy a bgcolor="chucknorr" miért lesz sárga:

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

Ami világos sárga színnek felel meg. :)

...