Kodėl HTML laikoma „chucknorris“ spalva?

Kodėl kai kurios atsitiktinės linijos sukuria spalvas, kai jos įvedamos kaip fono spalvos HTML? Pavyzdžiui:

30 нояб. nustatė user456584 lapkritis 30 2011-11-30 01:54 '11 at 1:54 2011-11-30 01:54
@ 10 atsakymų

Tai „Netscape“ dienų reliktas:

Trūksta skaitmenų laikomi 0 [...]. Neteisingas numeris tiesiog interpretuojamas kaip 0. Pavyzdžiui, reikšmės # F0F0F0, F0F0F0, F0F0F, #FxFxFx ir FxFxFx yra tos pačios.

Tai yra iš dienoraščio įrašo. Kalbu šiek tiek apie „Microsoft Internet Explorer“ spalvų analizę, kuri ją išsamiai apibūdina, įskaitant skirtingus spalvų vertybių ilgius ir kt.

Jei taikome taisykles iš eilės iš dienoraščio įrašo, mes gauname:

  1. Pakeiskite visus netinkamus šešioliktainius simbolius 0

     chucknorris becomes c00c0000000 
  2. Užpildykite kitą bendrą simbolių skaičių, padalomą iš 3 (11 → 12)

     c00c 0000 0000 
  3. Padalinkite į tris lygias grupes, kuriose kiekvienas komponentas atitinka atitinkamą RGB spalvos komponentą:

     RGB (c00c, 0000, 0000) 
  4. Kiekvieną argumentą nukirpkite iki dviejų ženklų iš dešinės.

Kas duoda šį rezultatą:

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

Čia pateikiamas pavyzdys, rodantis „ bgcolor atributą, kuriuo siekiama sukurti šį „nuostabų“ spalvų spalvos Swatch:

6241
01 дек. atsakymas dash 01 dec. 2011-12-01 00:53 '11 prie 0:53 2011-12-01 00:53

Atsiprašau nesutikti, tačiau pagal „ Yuhong Bao“ paskelbtos pasenusios spalvos reikšmės analizavimo taisykles, chucknorris chucknorris ne lygus #CC0000 , o #C00000 , labai panašus, bet šiek tiek kitoks raudonos spalvos atspalvis. Aš naudoju „ Firefox ColorZilla“ priedą, kad galėčiau jį patikrinti.

Taisyklės skaito:

  • pridedant 0s: chucknorris0 kad linijos ilgis būtų 3
  • padalinkite liniją į 3 tos pačios ilgio linijas: chuc knor ris0
  • supjaustykite kiekvieną eilutę iki 2 simbolių: ch kn ri
  • palikti šešiasdešimties reikšmes ir prireikus pridėti 0: C0 00 00

Galėjau naudoti šias taisykles teisingai interpretuoti šias eilutes:

  • LuckyCharms
  • Luck
  • LuckBeALady
  • LuckBeALadyTonight
  • GangnamStyle

ATNAUJINIMAS: pradiniai respondentai, kurie sakė, kad spalva buvo #CC0000 , nuo to laiko redagavo savo atsakymus, kad įgalintų pataisą.

856
17 окт. atsakymas, kurį pateikė Jeremy Goodell, spalio 17 d 2012-10-17 20:55 '12 8:55 val. 2012-10-17 20:55

Dauguma naršyklių tiesiog ignoruoja bet kokias šešioliktaines vertes jūsų spalvų linijoje, pakeisdamos ne heksadeciminius skaitmenis su nuliais.

ChuCknorris verčia į c00c0000000 . Šiuo metu naršyklė c00c 0000 0000 liniją į tris lygias dalis, nurodydama raudonos, žalios ir mėlynos c00c 0000 0000 : c00c 0000 0000 . Papildomi bitai kiekviename skyriuje bus ignoruojami, todėl galutinis rezultatas #c00000 bus rausvas.

Atkreipkite dėmesį, kad tai netaikoma CSS spalvų analizei, kuri atitinka CSS standartą.

345
30 нояб. Atsakymas, kurį pateikė Mike Christensen lapkričio 30 d 2011-11-30 02:01 '11 at 2:01 2011-11-30 02:01

Naršyklė bando konvertuoti chucknorris į šešioliktainį spalvos kodą, nes ji yra neteisinga reikšmė.

  1. chucknorris viskas, išskyrus c , nėra tinkama šešioliktainė reikšmė.
  2. Taigi jis konvertuojamas į c00c00000000 .
  3. Kuris tampa # c00000 , raudonos spalvos atspalviu.

Atrodo, kad tai yra problema visų pirma „ Internet Explorer“ ir „ Opera“ (12), nes „Chrome“ (31) ir „Firefox“ (26) tiesiog jį ignoruoja.

PS Skaičiai skliausteliuose yra naršyklės versijos, kurias aš išbandžiau.

,

Dėl lengvesnio užrašo

Chuck Norris neatitinka interneto standartų. Tinklo standartai atitinka jį. # BADA55

237
30 нояб. atsakymą pateikė aWebDeveloper . 2013-11-30 17:05 „13“ 17:05 val. 2013-11-30 17:05

WHATWG HTML specifikacijoje yra tikslus algoritmas, skirtas analizuoti pasenusias spalvas: https://html.spec.g.org/multipage/infrastructure.html#rules-for-parsing-a-legacy-colour-value

„Netscape Classic“ kodas, naudojamas spalvotų linijų analizei, yra atviras šaltinis: https://dxr.mozilla.org/classic/source/lib/layout/layimage.c#155.

Pavyzdžiui, atkreipkite dėmesį, kad kiekvienas simbolis yra perskaičiuojamas kaip šešioliktainis skaičius, o tada perkeliamas į 32 bitų sveikąjį skaičių be perpildymo tikrinimo . Tik aštuoni šešioliktainiai skaitmenys atitinka 32 bitų sveikąjį skaičių, todėl skaičiuojami tik paskutiniai 8 simboliai. Išnagrinėjus šešioliktainius skaitmenis į 32 bitų sveikuosius skaičius, jie sutrumpinami iki 8 bitų sveikųjų skaičių, dalijantys juos iki 16, kol jie telpa 8 bitų, todėl pagrindiniai nuliai ignoruojami.

Atnaujinimas: šis kodas visiškai neatitinka to, kas apibrėžta specifikacijoje, tačiau vienintelis skirtumas yra keletas kodų eilučių. Manau, kad šios eilutės buvo pridėtos (Netscape 4):

 if (bytes_per_val > 4) { bytes_per_val = 4; } 
195
28 сент. Yuhong Bao atsakymas rugsėjo 28 d 2012-09-28 01:01 '12 ne 1:01 2012-09-28 01:01

Atsakymas:

  • Naršyklė bandys konvertuoti chucknorris į šešioliktainį.
  • Kadangi c yra vienintelis galiojantis šešioliktainis c00c00000000 simbolis, vertė konvertuojama į: c00c00000000 ( 0 visoms negaliojančioms reikšmėms ).
  • Tada naršyklė skirsto rezultatą į 3 grupes: Red = c00c , Green = 0000 , Blue = 0000 .
  • Kadangi realios html fono šešioliktainės reikšmės yra tik 2 skaitmenys kiekvienam spalvų tipui ( r , g , b ), paskutiniai 2 skaitmenys yra sutrumpinti iš kiekvienos grupės, paliekant reikšmę rgb c00000 kuri yra plytų raudonos spalvos spalva.
173
24 мая '16 в 8:18 2016-05-24 08:18 atsakymą pateikė Webeng , gegužės 24 d., 16 d., 8:18, 2016-05-24 08:18

Priežastis yra ta, kad naršyklė negali tai suprasti ir bando kažkaip išversti jį į kažką, ką ji gali suprasti, ir šiuo atveju į šešioliktainę vertę! ...

chucknorris prasideda nuo c kuris yra atpažįstamas simbolis šešioliktainiame formate, ir taip pat konvertuoja visus neatpažintus simbolius į 0 !

Taigi, šešioliktainio formato c00c00000000 tampa: c00c00000000 , visi kiti simboliai tampa 0 ir c lieka ten, kur jie yra ...

Dabar jie yra padalinti iš 3 RGB (raudona, žalia, mėlyna) ... R: c00c, G: 0000, B:0000 ...

Tačiau žinome, kad tikrasis šešioliktainis RGB kodas yra tik 2 simboliai, o tai reiškia, kad R: c0, G: 00, B:00

Taigi, tikrasis rezultatas:

 bgcolor="#c00000"; 

Aš taip pat pridėjau paveikslėlio veiksmus kaip greitą nuorodą:

2019

Chuck Norris yra statistika su naršykle, skaitančia šešioliktainę vertę.

nes a, b, c, d, e, f yra šešioliktainiai simboliai

chucknorris naršyklė konvertuoja į c00c00000000 reikšmę c00c00000000 .

Tada c00c00000000 hex reikšmė konvertuojama į RGB formatą (padalinta iš 3)

c00c00000000 => R:c00c,G:0000,B:0000

Naršyklei reikia tik 2 skaitmenų, kad būtų nurodyta spalva.

R:c00c,G:0000,B:0000 => R:c0,G:00,B:00 => c00000

pagaliau naršyklėje parodyti bgcolor = c00000 .

Pateikiamas pavyzdys

7
17 апр. sameera lakshitha atsakymas balandžio 17 d 2018-04-17 22:16 '18, 10:16 pm 2018-04-17 22:16

Analizuojant spalvas, negaliojantys numeriai laikomi 0. Taigi, chucknorris => c00c0000000 Tai padalinta į 3 dalis (r, g, b). Taigi, chucknorris => c00c 0000 000 Skaičiuojami tik pirmieji du skaitmenys. Taigi, chucknorris => c0 00 00 A, RGB (c0, 00, 00) RED. Manau, galite suprasti, kodėl chucknorr => geltona dabar.

0
20 дек. Atsakymas pateikiamas Bindiya H 20 d. 2018-12-20 08:10 '18 8:10 am 2018-12-20 08:10

Paveldėtų atributų spalvų analizavimo taisyklėse yra papildomų veiksmų, nei paminėti esamuose atsakymuose. Dviejų skaitmenų dalies sutrumpinimo komponentas apibūdinamas kaip:

  1. Atšaukti visus simbolius, išskyrus paskutinius 8
  2. Nuleiskite pirmuosius nulius po vieną, kol visi komponentai turi nulį
  3. Atšaukti visus simbolius, išskyrus pirmąjį 2

Keletas pavyzdžių:

 body { font: medium monospace; } input { width: 20em; } table { table-layout: fixed; width: 100%; } 

Žr. Kitus klausimus „ žymėse arba užduoti klausimą