<নির্বাচন> এলিমেন্ট এখন CSS দিয়ে কাস্টমাইজ করা যায়

প্রকাশিত: মার্চ 24, 2025

Chrome 135 থেকে, ওয়েব ডেভেলপার এবং ডিজাইনাররা অবশেষে ওয়েবে একটি অ্যাক্সেসযোগ্য, মানসম্মত এবং CSS শৈলীযোগ্য <select> উপাদানে একত্রিত হতে পারে। এটি তৈরির অনেক বছর হয়েছে, অনেক ঘন্টার প্রকৌশল এবং সহযোগী স্পেসিফিকেশন কাজ, এবং ফলাফল একটি অবিশ্বাস্যভাবে সমৃদ্ধ এবং শক্তিশালী উপাদান যা পুরানো ব্রাউজারগুলিতে ভাঙবে না।

এই নতুন বৈশিষ্ট্যগুলি ব্যবহার করে কাস্টমাইজড নির্বাচনের একটি ভিডিও এখানে রয়েছে:

উনা , ব্রেখট এবং অ্যাডামের ডেমো সমন্বিত।

আপনি যদি ঘনিষ্ঠভাবে অনুসরণ করে থাকেন, আপনি লক্ষ্য করবেন যে সম্প্রদায়ের প্রতিক্রিয়ার জন্য উনার অনুরোধের পর থেকে কয়েকটি বিশেষ নাম এবং বৈশিষ্ট্য পরিবর্তিত হয়েছে। সৌভাগ্যবশত, আপনি যদি সেই পোস্ট থেকে কাজ করেন এবং কি পরিবর্তন হয়েছে তাতে আগ্রহী হন, তাহলে Una-এরও আপনাকে কভার করা হয়েছে

কাস্টমাইজযোগ্য নির্বাচনের জন্য MDN-এ চকচকে নতুন ডকুমেন্টেশনও রয়েছে, বিশদ বিবরণে পরিপূর্ণ।

মিট appearance: base-select

একটি নতুন CSS সম্পত্তি appearance: base-select যা <select> উপাদানটিকে একটি নতুন, কনফিগারযোগ্য এবং শৈলীযোগ্য অবস্থায় রাখে যা সাধারণত "বেস" শৈলী হিসাবে উল্লেখ করা হয়:

.custom-select {
  &, &::picker(select) {
    appearance: base-select;    
  }
}

base-select ব্যবহার করে বেশ কয়েকটি নতুন বৈশিষ্ট্য এবং আচরণ আনলক করে :

base-select ব্যবহার করলে অনেকগুলি বৈশিষ্ট্য এবং আচরণ হারায় :

  • <select> ব্রাউজার ফলকের বাইরে রেন্ডার হয় না।
  • এটি অন্তর্নির্মিত মোবাইল অপারেটিং সিস্টেমের উপাদানগুলিকে ট্রিগার করে না।
  • <select> দীর্ঘতম <option> এর প্রস্থ নেওয়া বন্ধ করে দেয়।

একটি <select> এখন সমৃদ্ধ HTML সামগ্রী অন্তর্ভুক্ত করতে পারে

আপনি একটি <select> কাস্টমাইজ করার আগে, যদি আপনি একটি চিত্র বা SVG-এর মতো জিনিসগুলিকে <option> উপাদানে রাখেন, ব্রাউজার সেগুলিকে উপেক্ষা করবে।

নিম্নলিখিত এইচটিএমএল বিবেচনা করুন, ব্রাউজার এটি আপনার লেখার সাথে সাথে পড়বে:

<select class="custom-select">
  <option>
    <svg aria-hidden>…</svg>
    <span>HTML</span>
  </option>
  <option>
    <svg aria-hidden>…</svg>
    <span>CSS</span>
  </option>
  <option>
    <svg aria-hidden>…</svg>
    <span>JavaScript</span>
  </option>
  <option>
    <svg aria-hidden>…</svg>
    <span>WASM</span>
  </option>
</select>

তবে ব্যবহৃত DOM-এ <svg> অন্তর্ভুক্ত করা হবে না:

<select class="custom-select">
  <option>
    <span>HTML</span>
  </option>
  <option>
    <span>CSS</span>
  </option>
  <option>
    <span>JavaScript</span>
  </option>
  <option>
    <span>WASM</span>
  </option>
</select>

এখানে (বাম থেকে ডানে) ক্রোম, সাফারি এবং ফায়ারফক্স পূর্ববর্তী HTML রেন্ডার করছে। যদি ব্রাউজারটি appearance: base-select তাহলে SVG বিকল্পটিতে উপস্থিত হবে, অন্যথায় এটি হবে না।

ক্রোম, সাফারি এবং ফায়ারফক্স ভিতরে SVG-এর সাথে একটি নির্বাচন রেন্ডার করছে। ক্রোম ছবিগুলি দেখায়, সাফারি এবং ফায়ারফক্স এমনভাবে রেন্ডার করে যেন কোনও ছবি নেই।
এই কোডপেনে এটি চেষ্টা করুন

পার্সার পরিবর্তনের কারণে কাস্টমাইজযোগ্য নির্বাচন সহ বিদ্যমান ওয়েবসাইটগুলি ভাঙ্গার ঝুঁকি রয়েছে। ক্রোমের ফিঞ্চ এক্সপেরিমেন্টের পিছনে বৈশিষ্ট্যগুলি রয়েছে যদি কোনও জরুরি প্রয়োজনে এটি বন্ধ করার প্রয়োজন হয়। সবকিছু ঠিকঠাক থাকলে, পরীক্ষা শেষ হবে এবং কোডটি স্থায়ীভাবে উৎসে পাঠানো হবে।

সম্পূর্ণরূপে কাস্টমাইজযোগ্য

একটি base-select প্রতিটি অংশ অদলবদল, কাস্টমাইজ এবং অ্যানিমেটেড করা যেতে পারে। এখানে একটি ডেমো রয়েছে যা স্বীকৃত এবং অর্থপূর্ণ নির্বাচন অভিজ্ঞতা তৈরি করতে প্রতিটি নতুন বৈশিষ্ট্য ব্যবহার করে।

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

এই পোস্টের শেষে সম্পদ বিভাগে আরও অনেক উদাহরণ খুঁজুন।

অপরিবর্তিত জাভাস্ক্রিপ্ট ইন্টারফেস

একটি <select> উপাদানের সাথে আপনার বিদ্যমান জাভাস্ক্রিপ্ট ইন্টারঅ্যাকশনের কোন ঝুঁকি নেই।

যাইহোক, যদি আপনি আপনার <option> উপাদানগুলিতে সমৃদ্ধ HTML যোগ করা শুরু করেন, তাহলে আপনার নির্বাচিত মান পরীক্ষা করা উচিত, কারণ ব্রাউজার এখনও ছবি এবং SVG পার্স এবং উপেক্ষা করে। যদিও যুক্তিটি পরিবর্তিত হয়েছে, নির্বাচিত বিষয়বস্তু স্ট্রিং নির্ধারণের জন্য এবং আপনার বিকল্পগুলিতে যা আছে তার উপর নির্ভর করে, আপনাকে সামঞ্জস্য করতে হতে পারে।

আপনি যদি একটি <option>value বৈশিষ্ট্যটি ব্যবহার করেন তবে আপনার উদ্বিগ্ন হওয়ার কিছু নেই।

সম্পদ

ক্রোমই প্রথম base-select বাস্তবায়ন করেছে, কিন্তু প্রতিটি ব্রাউজার স্পেসিফিকেশনে অংশ নিয়েছে এবং আরও "বেস" উপাদান এখনও সম্পূর্ণ করা বাকি আছে। এই মাত্র একটি শুরু.

সাথে থাকুন কারণ আমরা নির্বাচিত উপাদানগুলিকে কাস্টমাইজ করার বিষয়ে নির্দেশিকা, উদাহরণ এবং সংস্থান যোগ করতে থাকব। ততক্ষণ পর্যন্ত, আরও তথ্যের জন্য নিম্নলিখিত লিঙ্কগুলি চেকআউট করুন।

যারা এই ঘটতে জড়িত ছিল তাদের সকলকে বিশেষ ধন্যবাদ!