HTML neden ÔÇťchucknorrisÔÇŁ in renkli oldu─čunu d├╝┼č├╝n├╝yor?


Al─▒nan cevaba git


Baz─▒ rasgele dizeler HTML'de arka plan renkleri olarak girildi─činde nas─▒l renkler ├╝retir? ├ľrne─čin:

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

... t├╝m taray─▒c─▒larda ve platformlarda k─▒rm─▒z─▒ arka plana sahip bir belge ├╝retir .

─░lgin├ž bir ┼čekilde, ayn─▒ chucknorri zamanda k─▒rm─▒z─▒ bir arka plan chucknorr ├╝retirken, sar─▒ bir arka plan ├╝retmektedir.

Burada neler oluyor?


7211









Cevap say─▒s─▒n─▒ say: 10






Netscape g├╝nlerinden bir haber:

Eksik rakamlar 0 olarak kabul edilir [...]. Yanl─▒┼č bir hane basit├že 0 olarak yorumlan─▒r. ├ľrne─čin # F0F0F0, F0F0F0, F0F0F, #FxFxFx ve FxFxFx de─čerleri ayn─▒d─▒r.

Blog postas─▒ndanÔÇŽ De─či┼čen uzunluktaki renk de─čerleri vb. Dahil olmak ├╝zere ayr─▒nt─▒l─▒ bir ┼čekilde kapsayan Microsoft Internet Explorer'─▒n renk ayr─▒┼čt─▒rmas─▒ hakk─▒nda biraz rant

Kurallar─▒ blog g├Ânderisinden sonra uygularsak a┼ča─č─▒dakileri al─▒r─▒z:

  1. T├╝m ge├žersiz onalt─▒l─▒k karakterleri 0 ile de─či┼čtirin

     chucknorris becomes c00c0000000
     
  2. 3 (11 -> 12) ile b├Âl├╝nebilen bir sonraki toplam karakter say─▒s─▒na gidin

     c00c 0000 0000
     
  3. Her bir bile┼čen, bir RGB rengin ilgili renk bile┼čenini temsil eden ├╝├ž e┼čit gruba ayr─▒l─▒r:

     RGB (c00c, 0000, 0000)
     
  4. Ba─č─▒ms─▒z de─či┼čkenlerin her birini sa─čdan iki karaktere kadar k─▒salt─▒n

A┼ča─č─▒daki sonucu verir:

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

─░┼čte bgcolor bu "┼ča┼č─▒rt─▒c─▒" renk ├Ârne─čini ├╝retmek i├žin , ├Âzniteli─či ├žal─▒┼č─▒rken g├Âsteren bir ├Ârnek :

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

Bu ayn─▒ zamanda sorunun di─čer taraf─▒na da cevap veriyor; neden bgcolor="chucknorr" sar─▒ renk ├╝retir? E─čer kurallar─▒ uygularsak, dizi:

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

Bu a├ž─▒k sar─▒ alt─▒n rengini verir. Dize 9 karakter olarak ba┼člad─▒k├ža, ikinci C'yi bu kez civar─▒nda tutar─▒z, bu nedenle son renk de─čerinde biter.

Asl─▒nda birileri senin yapabilece─čini color="crap" ve ... ... kahverenginin ortaya ├ž─▒kt─▒─č─▒n─▒ belirtti.


6643


2011-11-30





Ben kat─▒lm─▒yorum ├╝zg├╝n├╝m ama taraf─▒ndan yay─▒nlanan bir miras renk de─čeri ayr─▒┼čt─▒rmak i├žin kurallara g├Âre @Yuhong Bao , chucknorris denk ETMEZ #CC0000 , bunun yerine #C00000 k─▒rm─▒z─▒ bir ├žok benzer fakat biraz farkl─▒ renkten,. Bunu do─črulamak i├žin Firefox ColorZilla eklentisini kulland─▒m .

Kurallar devlet:

  • dize 0 ekleyerek 3 kat─▒ olan bir uzunluk yap─▒n: chucknorris0
  • dizeyi 3 e┼čit uzunluklu dizgeye ay─▒r─▒n: chuc knor ris0
  • her dizeyi 2 karaktere kadar k─▒salt: ch kn ri
  • onalt─▒l─▒k de─čerlerini koru ve gerekti─činde 0 de─čerini ekle: C0 00 00

A┼ča─č─▒daki kurallar─▒ do─čru bir ┼čekilde yorumlamak i├žin bu kurallar─▒ kullanabildim:

  • LuckyCharms
  • Luck
  • LuckBeALady
  • LuckBeALadyTonight
  • GangnamStyle

G├ťNCELLEME: Rengin oldu─čunu s├Âyleyen orijinal cevaplay─▒c─▒lar #CC0000 d├╝zeltmeyi i├žerecek ┼čekilde cevaplar─▒n─▒ d├╝zenlediler.


928







├ço─ču taray─▒c─▒, renk dizenizdeki NON-hex de─čerlerini yok sayar ve hex olmayan rakamlar─▒ s─▒f─▒rlarla de─či┼čtirir.

ChuCknorris ├ževirir c00c0000000 . Bu noktada, taray─▒c─▒ belirten ├╝├ž e┼čit par├žaya dize b├Âlece─čiz K─▒rm─▒z─▒ , Ye┼čil ve Mavi de─čerlerini: c00c 0000 0000 . Her b├Âl├╝mdeki ekstra bitler g├Âz ard─▒ edilir ve bu da kesin sonucu #c00000 k─▒rm─▒z─▒ms─▒ bir renk yapar.

Bunun CSS standard─▒n─▒ izleyen CSS renk ayr─▒┼čt─▒rmas─▒ i├žin ge├žerli olmad─▒─č─▒n─▒ unutmay─▒n.

 <p><font color='chucknorris'>Redish</font></p>
<p><font color='#c00000'>Same as above</font></p>
<p><span style="color: chucknorris">Black</span></p> 


377







Taray─▒c─▒ chucknorris ge├žerli bir de─čer olmad─▒─č─▒ i├žin hex renk koduna d├Ân├╝┼čt├╝rmeye ├žal─▒┼č─▒yor .

  1. ─░├žinde chucknorris , her ┼čey c ge├žerli bir onalt─▒l─▒k de─čer de─čildir.
  2. B├Âylece d├Ân├╝┼čt├╝r├╝l├╝r c00c00000000 .
  3. Hangi # c00000 , k─▒rm─▒z─▒ bir g├Âlge olur .

Hem Chrome (31) hem de Firefox (26) bunu g├Ârmezden geldi─či i├žin bu, ├Âncelikle Internet Explorer ve Opera (12) ile ilgili bir sorun gibi g├Âr├╝n├╝yor .

PS Parantez i├žindeki say─▒lar test etti─čim taray─▒c─▒ s├╝r├╝mleridir.

.

Daha hafif bir notta

Chuck Norris web standartlar─▒na uymuyor. Web standartlar─▒ ona uygundur. # Bada55


286







Bunun nedeni, taray─▒c─▒ bunu anlayam─▒yor ve bir ┼čekilde anlayabilece─či ┼čeye ├ževirmeyi deniyor ve bu durumda onalt─▒l─▒k bir de─čere ├ževiriyor! ...

chucknorris c onalt─▒l─▒ karakterde tan─▒nan karakterle ba┼člar, tan─▒nmayan t├╝m karakterleri de i├žine al─▒r 0 !

B├Âylece chucknorris onalt─▒l─▒k bi├žimde olur: c00c00000000 di─čer t├╝m karakterler olur 0 ve c olduklar─▒ yerde kal─▒r ...

┼×imdi RGB (k─▒rm─▒z─▒, ye┼čil, mavi) i├žin 3'e b├Âl├╝n├╝yorlar ... R: c00c, G: 0000, B:0000 ...

Ancak RGB i├žin ge├žerli onalt─▒l─▒k oldu─čunu biliyoruz, sadece 2 karakter, R: c0, G: 00, B:00

Yani ger├žek sonu├ž:

 bgcolor="#c00000";
 

Ayr─▒ca g├Âr├╝nt├╝deki ad─▒mlar─▒ sizin i├žin h─▒zl─▒ bir referans olarak ekledim:


HTML neden ÔÇťchucknorrisÔÇŁ in renkli oldu─čunu d├╝┼č├╝n├╝yor?


253







WHATWG HTML ├Âzelli─či, eski bir renk de─čerini ayr─▒┼čt─▒rmak i├žin tam bir algoritmaya sahiptir: https://html.spec.whatwg.org/multipage/infrastructure.html#rules-for-parsing-a-legacy-colour-value

Renk dizelerini ayr─▒┼čt─▒rmak i├žin kullan─▒lan Netscape Classic kodu a├ž─▒k kaynakt─▒r: https://dxr.mozilla.org/classic/source/lib/layout/layimage.c#155

├ľrne─čin, her karakterin onalt─▒l─▒k bir rakam olarak ayr─▒┼čt─▒r─▒ld─▒─č─▒n─▒ ve daha sonra ta┼čma kontrol├╝ yapmadan 32 bit bir tamsay─▒ya kayd─▒r─▒ld─▒─č─▒na dikkat edin . Yaln─▒zca sekiz onalt─▒l─▒k basamak 32 bit bir tamsay─▒ya s─▒─čar, bu nedenle yaln─▒zca son 8 karakter dikkate al─▒n─▒r. Onalt─▒l─▒k say─▒lar─▒ 32-bit tam say─▒lara ayr─▒┼čt─▒rd─▒ktan sonra, 8-bit tam say─▒lara b├Âl├╝nerek 8-bit'e kadar 16'ya b├Âlerek, bu y├╝zden ba┼čtaki s─▒f─▒rlar─▒n yoksay─▒lmas─▒n─▒n nedeni budur.

G├╝ncelleme: bu kod tam olarak spesifikasyonda tan─▒mlananlarla e┼čle┼čmiyor, ancak tek fark birka├ž kod sat─▒r─▒ var. San─▒r─▒m bu eklenen sat─▒rlar (Netscape 4'te):

 if (bytes_per_val > 4)
{
      bytes_per_val = 4;
}
 

210







Cevap:

  • Taray─▒c─▒ chucknorris'i onalt─▒l─▒k bir de─čere d├Ân├╝┼čt├╝rmeye ├žal─▒┼čacakt─▒r .
  • Yana c tek ge├žerli onalt─▒l─▒k karakter ChuckNorris , de─čer d├Âner i├žine: c00c00000000 ( ge├žersiz olan t├╝m de─čerler i├žin 0 ).
  • Taray─▒c─▒, daha sonra 3 groupds i├žine sonucu b├Âler: Red = c00c , Green = 0000 , Blue = 0000 .
  • Html arkaplanlar─▒ i├žin ge├žerli onalt─▒l─▒k de─čerler her renk t├╝r├╝ i├žin sadece 2 hane i├žerdi─činden ( r , g , b ), son 2 hane her gruptan kesilir ve rgb de─čeri c00000 tu─čla k─▒rm─▒z─▒ms─▒ tondad─▒r.

192







chucknorris c ile ba┼člar ve taray─▒c─▒ onu onalt─▒l─▒k bir de─čere okur.

Çünkü A, B, C, D, E ve F onaltılık karakterlerdir .

Taray─▒c─▒ chucknorris onalt─▒l─▒k bir de─čere d├Ân├╝┼čt├╝r├╝l├╝r C00C00000000 .

Daha sonra C00C00000000 onalt─▒l─▒k de─čer RGB format─▒na d├Ân├╝┼čt├╝r├╝l├╝r (3'e b├Âl├╝n├╝r):

C00C00000000 => R:C00C, G:0000, B:0000

Taray─▒c─▒, rengi belirtmek i├žin sadece iki rakama ihtiya├ž duyar:

R:C00C, G:0000, B:0000 => R:C0, G:00, B:00 => C00000

Sonunda, bgcolor = C00000 web taray─▒c─▒s─▒nda g├Âster.

─░┼čte bunu g├Âsteren bir ├Ârnek:

 <table>
  <tr>
    <td bgcolor="chucknorris" cellpadding="10" width="150" align="center">chucknorris</td>
    <td bgcolor="c00c00000000" cellpadding="10" width="150" align="center">c00c00000000</td>
    <td bgcolor="c00000" cellpadding="10" width="150" align="center">c00000</td>
  </tr>
</table> 


15







Eski niteliklerini renkleri ayr─▒┼čt─▒rmak i├žin kurallar mevcut cevaplar─▒ belirtilenler haricindeki ek ad─▒mlar─▒ i├žerir. 2 hane par├žas─▒na kesilen bile┼čen ┼č├Âyle tan─▒mlan─▒r:

  1. Son 8 hari├ž t├╝m karakterleri sil
  2. T├╝m bile┼čenlerin ba┼č─▒nda s─▒f─▒r oldu─ču s├╝rece ba┼čtaki s─▒f─▒rlar─▒ birer birer at─▒n
  3. ─░lk 2 d─▒┼č─▒ndaki t├╝m karakterleri at

Baz─▒ ├Ârnekler:

 oooFoooFoooF
000F 000F 000F                <- replace, pad and chunk
0F 0F 0F                      <- leading zeros truncated
0F 0F 0F                      <- truncated to 2 characters from right

oooFooFFoFFF
000F 00FF 0FFF                <- replace, pad and chunk
00F 0FF FFF                   <- leading zeros truncated
00 0F FF                      <- truncated to 2 characters from right

ABCooooooABCooooooABCoooooo
ABC000000 ABC000000 ABC000000 <- replace, pad and chunk
BC000000 BC000000 BC000000    <- truncated to 8 characters from left
BC BC BC                      <- truncated to 2 characters from right

AoCooooooAoCooooooAoCoooooo
A0C000000 A0C000000 A0C000000 <- replace, pad and chunk
0C000000 0C000000 0C000000    <- truncated to 8 characters from left
C000000 C000000 C000000       <- leading zeros truncated
C0 C0 C0                      <- truncated to 2 characters from right
 

A┼ča─č─▒da algoritman─▒n k─▒smi bir uygulamas─▒d─▒r. Hatalar─▒ veya kullan─▒c─▒n─▒n ge├žerli bir renge girdi─či durumlar─▒ i┼člemez.

 function parseColor(input) {
  // todo: return error if input is ""
  input = input.trim();
  // todo: return error if input is "transparent"
  // todo: return corresponding #rrggbb if input is a named color
  // todo: return #rrggbb if input matches #rgb
  // todo: replace unicode code points greater than U+FFFF with 00
  if (input.length > 128) {
    input = input.slice(0, 128);
  }
  if (input.charAt(0) === "#") {
    input = input.slice(1);
  }
  input = input.replace(/[^0-9A-Fa-f]/g, "0");
  while (input.length === 0 || input.length % 3 > 0) {
    input += "0";
  }
  var r = input.slice(0, input.length / 3);
  var g = input.slice(input.length / 3, input.length * 2 / 3);
  var b = input.slice(input.length * 2 / 3);
  if (r.length > 8) {
    r = r.slice(-8);
    g = g.slice(-8);
    b = b.slice(-8);
  }
  while (r.length > 2 && r.charAt(0) === "0" && g.charAt(0) === "0" && b.charAt(0) === "0") {
    r = r.slice(1);
    g = g.slice(1);
    b = b.slice(1);
  }
  if (r.length > 2) {
    r = r.slice(0, 2);
    g = g.slice(0, 2);
    b = b.slice(0, 2);
  }
  return "#" + r.padStart(2, "0") + g.padStart(2, "0") + b.padStart(2, "0");
}

$(function() {
  $("#input").on("change", function() {
    var input = $(this).val();
    var color = parseColor(input);
    var $cells = $("#result tbody td");
    $cells.eq(0).attr("bgcolor", input);
    $cells.eq(1).attr("bgcolor", color);

    var color1 = $cells.eq(0).css("background-color");
    var color2 = $cells.eq(1).css("background-color");
    $cells.eq(2).empty().append("bgcolor: " + input, "<br>", "getComputedStyle: " + color1);
    $cells.eq(3).empty().append("bgcolor: " + color, "<br>", "getComputedStyle: " + color2);
  });
}); 
 body { font: medium monospace; }
input { width: 20em; }
table { table-layout: fixed; width: 100%; } 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>

<p><input id="input" placeholder="Enter color e.g. chucknorris"></p>
<table id="result">
  <thead>
    <tr>
      <th>Left Color</th>
      <th>Right Color</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
    </tr>
  </tbody>
</table> 


9







Bunun nedeni onalt─▒l─▒k alandaki "chucknorris" ├Â─česinin yaln─▒zca 255000000 olmas─▒d─▒r. A┼ča─č─▒daki koda e┼čde─čerdir:

 <p><font color='red'>Redish</font><p>
 

-2



─░lgili yay─▒nlar


PostmanÔÇÖda olmad─▒─č─▒ zaman JavaScript kodum neden ÔÇť─░stenilen kayna─č─▒n ├╝zerinde 'Eri┼čim Kontrol-─░zin Verme-Orijin' yok 'ba┼čl─▒─č─▒n─▒ g├ÂsteriyorÔÇŁ hatas─▒ al─▒yor?

Html.ActionLink neden ÔÇť? Uzunluk = 4ÔÇŁ olu┼čturur?

Visual Studio 2010, her zaman projenin g├╝ncel olmad─▒─č─▒n─▒ d├╝┼č├╝n├╝yor, ancak hi├žbir ┼čey de─či┼čmedi

Neden hedefin g├╝ncel oldu─čunu d├╝┼č├╝nd├╝r├╝yor?

Ni├žin ÔÇťsay─▒ÔÇŁ yaz─▒lan html giri┼či 'e' harfinin alana girilmesine izin veriyor mu?

Git neden ÔÇť├çekmemi┼č dosyalar─▒n─▒z oldu─čundan ├žekinme m├╝mk├╝n de─čilÔÇŁ diyor?

Chrome hata ay─▒klay─▒c─▒s─▒ neden kapal─▒ yerel de─či┼čkenin tan─▒ms─▒z oldu─čunu d├╝┼č├╝n├╝yor?

Java neden 10'dan 99'a kadar olan t├╝m say─▒lar─▒n ├╝r├╝n├╝n├╝n 0 oldu─čunu d├╝┼č├╝n├╝yor?

Firebug neden toFixed () 'nin bir fonksiyon olmad─▒─č─▒n─▒ s├Âyl├╝yor?

K─▒rm─▒z─▒ kalp emojisi neden iki kod noktas─▒ gerektiriyor, fakat di─čer renkli kalpler bir tane gerektiriyor?

Etiketle ilgili di─čer sorular [html]


Git deposunu belirli bir klas├Âre nas─▒l klonlars─▒n─▒z?

Const int *, const int * const ve int const * aras─▒ndaki fark nedir?

CSS iframe'e nas─▒l uygulan─▒r?

Objective-C kodunu Swift den nas─▒l ├ža─č─▒r─▒r─▒m?

Eski bir GitÔÇÖe geri alma, genel bir depoda i┼čleme koyuyor

Visual Studio Kodunda dikey cetveller?

HTTPS ba┼čl─▒klar─▒ ┼čifrelenmi┼č mi?

Git, bir blo─čun ├╝zerindeki SHA-1 ├žarp─▒┼čmas─▒n─▒ nas─▒l idare eder?

C++ derlemesi neden bu kadar uzun s├╝r├╝yor?

Bash de─či┼čken de─či┼čkeninde komut hata bulunamad─▒