HTML nə üçün "chucknorris" rəngini düşünür?

HTML-də fon rəngləri kimi daxil olduqda bəzi təsadüfi xətləri rəng yaradır? Məsələn:

30 нояб. 30 noyabr tarixində user456584 tərəfindən təyin olunmuşdur 2011-11-30 01:54 '11 at 1:54 2011-11-30 01:54
@ 10 cavab

Bu Netscape günlərinin qalıqlarıdır:

Eksik rəqəmlər 0 olaraq qəbul edilir [...]. Yanlış sayı sadəcə 0 olaraq şərh edilir. Məsələn, # F0F0F0, F0F0F0, F0F0F, # FxFxFx və FxFxFx dəyərləri eynidır.

Bu, bir blog yazıdır. Microsoft Internet Explorer-da, rəngli dəyərlərin müxtəlif uzunluğu və s. Daxil olmaqla ətraflı təsvir edən rəng ayrılığı haqqında bir az danışıram .

Qaydaları bir blog yayından öz növbəsində tətbiq edərsə, aşağıdakıları alırıq:

  1. Bütün yanlış hex simvolları 0 ilə dəyişdirin

     chucknorris becomes c00c0000000 
  2. 3 ədəd (11 → 12) bölünən növbəti ümumi sayını doldurun

     c00c 0000 0000 
  3. Hər bir komponent RGB rənginin müvafiq rəng komponentini təmsil edən üç bərabər qrupa bölün:

     RGB (c00c, 0000, 0000) 
  4. Dəyərlərdən hər birini sağdan iki simvara endirin.

Aşağıdakı nəticəni nə verir?

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

Burada "gözəl" rəng nümunəsini yaratmaq üçün hərəkətdə bgcolor xüsusiyyətini göstərən bir nümunədir:

6241
01 дек. cədvəl 01 dekabrda verilir . 2011-12-01 00:53 '11 at 0:53 2011-12-01 00:53

Razı deyiləm, amma @Yuhong Bao tərəfindən nəşr olunan köhnəlmiş rəng dəyərinin ayrılması qaydalarına görə üzr istəyirik, chucknorris #CC0000 ə bərabər deyil, daha çox #C00000 , çox oxşar, lakin bir qədər fərqli qırmızı kölgədir. Firefox ColorZilla eklentisini istifadə edərək, onu yoxlamaq üçün istifadə etdim.

Qaydalar oxundu:

  • 0s: chucknorris0 əlavə edərək xəttin 3-dən çox uzunluğunu chucknorris0
  • xəttin eyni uzunluğunun 3 xəttinə bölünməsi: chuc knor ris0
  • Hər bir xəttini 2 simvoldan ibarətdir: ch kn ri
  • hex dəyərlər buraxın və zəruri hallarda 0: C0 00 00

Aşağıdakı xətləri düzgün şərh etmək üçün bu qaydaları istifadə edə bildim:

border=0
  • LuckyCharms
  • Luck
  • LuckBeALady
  • LuckBeALadyTonight
  • GangnamStyle

YENİLƏNİB: Rəngin #CC0000 olduğunu söyləyən orijinal cavab #CC0000 , düzəlişləri təmin etmək üçün cavablarını düzəldiblər.

856
17 окт. Jeremy Goodell tərəfindən verilmiş cavab 17 oktyabr 2012-10-17 20:55 '12 saat 20:55 'da 2012-10-17 20:55

Çox brauzerlər rəng xəttinizdəki hexadecimal olmayan hər hansı dəyərləri yox sayır, onaltıq olmayan rəqəmləri sıfırlarla əvəz edirlər.

ChuCknorris kimi tərcümə edir. Bu nöqtədə, brauzer xəttin qırmızı, yaşıl və mavi dəyərlərini ifadə edən üç bərabər hissəyə c00c 0000 0000 : c00c 0000 0000 . Hər bölmədə əlavə bitlər nəzərə alınmayacaq, nəticədə son nəticə #c00000 qırmızı olacaq.

CSS standartlarına uyğun olan CSS rəng analizinə tətbiq edilməyəcəyini unutmayın.

345
30 нояб. Mike Christensen tərəfindən verilmiş cavab Noyabr 30 2011-11-30 02:01 '11 at 2:01 2011-11-30 02:01

Brauzer, chucknorris onaltılı bir rəng chucknorris çevirməyə çalışır, çünki bu yanlış bir dəyərdir.

  1. chucknorris c xaricindəki hər şey cari bir hexadecimal dəyər deyil.
  2. Beləliklə, c00c00000000 ə c00c00000000 .
  3. # C00000 , qırmızı bir kölgə olur.

Chrome (31) və Firefox (26) bunu nəzərə almadan internet ExplorerOpera (12) üçün ən önəmli problemdir.

PS Mötərizədə olan nömrələr test etdiyim brauzer versiyalarıdır.

,

Daha yüngül bir qeyd

Chuck Norris web standartlarına cavab vermir. Veb standartları bununla uyğun gəlir. # BADA55

237
30 нояб. Cavab 30 noyabrda aWebDeveloper tərəfindən verilir. 2013-11-30 17:05 '13 'də saat 17:05 ' də 2013-11-30 17:05

WHATWG HTML dəqiqləşdirilməsi köhnəlmiş rəng dəyərlərini təhlil etmək üçün dəqiq bir alqoritmə malikdir: https://html.spec.g.org/multipage/infrastructure.html#rules-for-parsing-a-legacy-colour-value

Rəng xətlərini ayırmaq üçün istifadə olunan Netscape Classic kodu açıq mənbədir: https://dxr.mozilla.org/classic/source/lib/layout/layimage.c#155.

Məsələn, hər bir xarakterin hexadecimal sayı kimi ayrıldığını və daha sonra daşqın yoxlama olmadan 32 bitlik bir tamsayıya keçdiyini qeyd edin. Yalnız sekiz hexadecimal rəqəm 32 bit tamsayıya sığar, belə ki, yalnız son 8 simvol sayılır. Hexadecimal ədədi 32 bitlik tamsayılara ayırdıqdan sonra 8 bitlik tamsayılara bölündükdən sonra onları 8-bit olanlara qədər 16 qədər bölündükdən sonra aparıcı sıfırlar nəzərə alınmır.

Yeniləmə: bu kod çox dəqiqləşdirmədə nə müəyyənləşdirilmişdir, lakin yalnız fərq bir neçə satır kodudur. Hesab edirəm ki, bu xətlər əlavə edilmişdir (Netscape 4-də):

 if (bytes_per_val > 4) { bytes_per_val = 4; } 
195
28 сент. Yuhong Bao tərəfindən verilmiş cavab 28 sentyabr 2012-09-28 01:01 '12 at 1:01 2012-09-28 01:01

Cavab:

  • Brauzer, chucknorris'i hexadecimal'e çevirməyə çalışacaq .
  • c , chucknorris'teki tek geçerli onaltılık karakter olduğundan , değer c00c00000000 ( bütün c00c00000000 değerler üçün 0) c00c00000000 .
  • Sonra brauzer nəticəsində 3 qrupa bölünür: Red = c00c , Green = 0000 , Blue = 0000 .
  • Html fonları üçün real hexadecimal dəyərlər hər rəng növü ( r , g , b ) üçün yalnız 2 rəqəmdən ibarət olduğundan, son 2 rəqəm hər bir qrupdan kəsilib, rgb c00000 dəyəri olan qırmızı-qırmızı rəngin rəngidir.
173
24 мая '16 в 8:18 2016-05-24 08:18 cavab Webeng tərəfindən 24 May '16 'da 8:18 2016-05-24 08:18' də verilir

Bunun səbəbi, brauzerin bunu anlaya bilməyəcəyi və onu anlaya biləcək bir şeyə çevrilməyə çalışır və bu halda onaltılıq dəyərə! ...

chucknorris hexadecimal formatda tanınan bir xarakter olan c ilə başlar və bütün tanınmayan simvolları 0 a çevirir!

Beləliklə, hexadecimal formatda c00c00000000 olur: c00c00000000 , bütün digər simvollar 0c olduğu yer qalır ...

İndi onlar RGB (qırmızı, yaşıl, mavi) üçün 3 bölünür ... R: c00c, G: 0000, B:0000 ...

Amma bilirik ki, RGB üçün onaltılıq onaltılıq kod yalnız 2 simvol, yəni R: c0, G: 00, B:00

Beləliklə, real nəticə:

 bgcolor="#c00000"; 

Mən şəkildəki addımları tez bir istinad kimi əlavə etdim:

2019

Chuck Norris hex dəyərində oxunan bir brauzer ilə bir statistikdir.

a, b, c, d, e, f hexadecimal xarakterlərdir

chucknorris brauzeri chucknorris hex dəyərinə c00c00000000 .

Sonra c00c00000000 hex dəyəri RGB formatına çevrilir (3 bölünür)

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

Brauzer yalnız rəng göstərmək üçün 2 rəqəmə ehtiyac duyur.

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

nəhayət web browser-da bgcolor = c00000 .

Burada bir nümunə göstəririk

7
17 апр. Ayna lakshitha tərəfindən verilmiş cavab 17 aprel 2018-04-17 22:16 '18 saat 10:16 'da 2018-04-17 22:16

Rəngləri təhlil edərkən, etibarlı nömrələr 0 hesab olunur. Belə ki, chucknorris => c00c0000000 Bu 3 hissəyə bölünür (r, g, b). Belə ki, chucknorris => c00c 0000 000 Yalnız ilk iki rəqəm sayılır. Belə ki, chucknorris => c0 00 00 A, RGB (c0, 00, 00) RED. İndi mən başa düşə bilərəm ki, niyə şucknorr => sarı indi.

0
20 дек. Cavab Bindiya H 20 dekabr verilir. 2018-12-20 08:10 '18 saat 8:10 'də 2018-12-20 08:10

Kalıtsal atributların rənglərini təhlil etmək üçün qaydalar mövcud cavablarda göstərilənlərə əlavə addımlar daxildir. İki rəqəmli hissəyə aid kəsici komponent aşağıdakı kimi təsvir olunur:

  1. Son 8-dən başqa bütün simvolları ləğv edin
  2. Bütün komponentlərin aparıcı sıfıra qədər bir - birinə aparıcı sıfırları buraxın
  3. İlk 2-dən başqa bütün simvolları ləğv edin

Bəzi nümunələr:

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