html color codes




কেন এইচটিএমএল মনে হয় "চকনোরিস" একটি রঙ? (6)

WHATWG HTML স্পেকটিতে একটি লিগ্যাসি রঙের মান বিশদ করার জন্য সঠিক অ্যালগরিদম রয়েছে: https://html.spec.whatwg.org/multipage/infrastructure.html#rules-for-parsing-a-legacy-colour-value

কোড স্ট্রিংগুলিকে পার্সিংয়ের জন্য ব্যবহৃত নেটস্কেপ ক্লাসিকটি ওপেন সোর্স: https://dxr.mozilla.org/classic/source/lib/layout/layimage.c#155

উদাহরণস্বরূপ, লক্ষ্য করুন যে প্রতিটি চরিত্রটি হেক্স ডিজিট হিসাবে পার্স করা হয়েছে এবং তারপরে ওভারফ্লো পরীক্ষা না করে একটি 32-বিট পূর্ণসংখ্যাতে স্থানান্তরিত করা হয়। শুধুমাত্র আট হেক্সা ডিজিটগুলি 32-বিট পূর্ণসংখ্যার মধ্যে মাপসই করা হয়, যার জন্য শুধুমাত্র শেষ 8 টি অক্ষর বিবেচনা করা হয়। হেক্সা ডিজিটগুলি 32-বিট পূর্ণসংখ্যার মধ্যে পার্স করার পরে, 8-বিট পূর্ণসংখ্যাগুলিতে তাদের ভাগ করে 16-বিট পূর্ণ করে, যা 8-বিটের মধ্যে ফিট না হওয়া পর্যন্ত, সেইজন্য নেতৃস্থানীয় শূন্যগুলি উপেক্ষা করা হয়।

হালনাগাদ: এই কোডটি স্পষ্টভাবে সংজ্ঞায়িত করা কি মিলছে না, তবে শুধুমাত্র পার্থক্য কোডটির কয়েকটি লাইন রয়েছে। আমি মনে করি এই লাইন যোগ করা হয়েছে (নেটস্কেপ 4):

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

এইচটিএমএল ব্যাকগ্রাউন্ড রং হিসাবে প্রবেশ যখন নির্দিষ্ট র্যান্ডম স্ট্রিং রং উত্পাদন কিভাবে? উদাহরণ স্বরূপ:

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

... সমস্ত ব্রাউজার এবং প্ল্যাটফর্ম জুড়ে লাল পটভূমি সহ একটি নথি তৈরি করে।

আগ্রহজনকভাবে, chucknorri পাশাপাশি একটি লাল পটভূমি তৈরি করে, chucknorr একটি হলুদ ব্যাকগ্রাউন্ড তৈরি করে।

এখানে কি হচ্ছে?


আমি ভিন্নমত পোষণ করার জন্য দুঃখিত, কিন্তু @ ইয়ুং বাউ দ্বারা পোস্ট করা একটি লিগ্যাসি রঙের মান বিশ্লেষণ করার নিয়ম অনুসারে, chucknorris #CC0000 সমান নয়, বরং #CC0000 , তবে একই রকম লাল রঙের। আমি এই যাচাই করার জন্য ফায়ারফক্স কালারজিলা অ্যাড-অন ব্যবহার করেছি।

নিয়ম রাষ্ট্র:

  • স্ট্রিংটি একটি দৈর্ঘ্য তৈরি করুন যা 0s যোগ করে 3 এর একাধিক হয়: chucknorris0
  • স্ট্রিংটি 3 সমান দৈর্ঘ্যের স্ট্রিংগুলিতে আলাদা করুন: chuc knor ris0
  • প্রতিটি স্ট্রিং দুটি অক্ষর ch kn ri : ch kn ri
  • হেক্স মানগুলি রাখুন এবং প্রয়োজনীয় যেখানে 0 যোগ করুন: C0 00 00

নিম্নোক্ত স্ট্রিংগুলি সঠিকভাবে ব্যাখ্যা করার জন্য আমি এই নিয়মগুলি ব্যবহার করতে সক্ষম হয়েছিলাম:

  • LuckyCharms
  • Luck
  • LuckBeALady
  • LuckBeALadyTonight
  • GangnamStyle

আপডেট: আসল উত্তরদাতারা যারা রঙ বলেছিলেন #CC0000 তাদের সংশোধন সংশোধন অন্তর্ভুক্ত করার জন্য সম্পাদনা করেছেন।


কারণ ব্রাউজার এটি বুঝতে পারে না এবং এটি কোনটি বুঝতে পারে তার কোনওভাবে এটি অনুবাদ করতে এবং এই ক্ষেত্রে একটি হেক্সাডেসিমেল মানের মধ্যে অনুবাদ করতে চেষ্টা করুন! ...

chucknorris c দিয়ে শুরু হয় যা হেক্সাডেসিমালের চরিত্রের স্বীকৃতিপ্রাপ্ত হয়, এটি সমস্ত অচেনা অক্ষরকে 0 রূপে রূপান্তর করে!

তাই chucknorris ফরম্যাটে c00c00000000 হয়ে যায়: c00c00000000 , অন্য সব অক্ষর 0 হয়ে যায় এবং c যেখানে থাকে সেগুলি ...

এখন তারা RGB (লাল, সবুজ, নীল) এর জন্য 3 দ্বারা বিভক্ত হয় ... R: c00c, G: 0000, B:0000 ...

কিন্তু আমরা সঠিক হেক্সাডেসিমাল জানি RGB এর জন্য শুধু 2 টি অক্ষর, অর্থ R: c0, G: 00, B:00

তাই আসল ফলাফল হল:

bgcolor="#c00000";

আমি দ্রুত রেফারেন্স হিসাবে ছবিতে ধাপগুলি যোগ করেছি:


ব্রাউজার chucknorris হেক্স রঙ কোড রূপান্তর করার চেষ্টা করছে, কারণ এটি একটি বৈধ মান নয়।

  1. chucknorris ইন, c ছাড়া সবকিছু ছাড়া একটি বৈধ হেক্স মান নয়।
  2. তাই এটি c00c00000000 রূপান্তরিত পায়।
  3. যা # সি 00000 হয়ে যায়, লাল একটি ছায়া।

এটি প্রাথমিকভাবে ইন্টারনেট এক্সপ্লোরার এবং অপেরা (12) এর সাথে একটি সমস্যা বলে মনে হচ্ছে কারণ ক্রোম (31) এবং ফায়ারফক্স (২6) উভয়ই এটিকে উপেক্ষা করে।

পিএস বন্ধনী সংখ্যা আমি পরীক্ষা উপর ব্রাউজার সংস্করণ হয়।

একটি লাইটার নোট

চক Norris ওয়েব মান মেলে না। ওয়েব মান তার সাথে সঙ্গতিপূর্ণ। # BADA55


উত্তরাধিকার বৈশিষ্ট্যের রঙগুলি প্যারিস করার নিয়মগুলি বিদ্যমান উত্তরগুলিতে উল্লেখ করাগুলির চেয়ে অতিরিক্ত পদক্ষেপগুলি অন্তর্ভুক্ত করে। 2 ডিজিটের অংশে টুকরা উপাদান হিসাবে বর্ণনা করা হয়েছে:

  1. শেষ 8 ছাড়া সব অক্ষর বাতিল করুন
  2. সব উপাদান একটি নেতৃস্থানীয় শূন্য আছে যতক্ষণ নেতৃস্থানীয় জিরো এক এক একসাথে বাতিল
  3. প্রথম 2 ছাড়া সব অক্ষর বাতিল করুন

কিছু উদাহরণ:

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

নীচে অ্যালগরিদম একটি আংশিক বাস্তবায়ন হয়। এটি ত্রুটি বা ক্ষেত্রে পরিচালনা করে না যেখানে ব্যবহারকারী একটি বৈধ রঙ প্রবেশ করে।

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>


chucknorris c এর সাথে পরিসংখ্যান ব্রাউজারটি একটি হেক্সাডেসিমেল মানের মধ্যে পড়ে।

কারণ A, B, C, D, E, F হেক্সাডেসিমালের অক্ষর

ব্রাউজার chucknorris c00c00000000 হেক্সাডেসিমেল মান রূপান্তর।

তারপর c00c00000000 হেক্সাডেসিমেল মান RGB ফর্ম্যাটে রূপান্তরিত হয় (3 দ্বারা বিভক্ত)

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

ব্রাউজারটির রং নির্দেশ করতে শুধুমাত্র 2 ডিজিটের প্রয়োজন।

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

অবশেষে, ওয়েব ব্রাউজারে bgcolor = c00000 দেখান।

এখানে একটি উদাহরণ প্রদর্শন করা হয়

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





background-color