تاريخ النشر: 24 آذار (مارس) 2025
اعتبارًا من الإصدار 135 من Chrome، أصبح بإمكان مطوّري الويب ومصمّمي المواقع الإلكترونية استخدام عنصر <select>
على الويب يمكن الوصول إليه ومتوافق مع معايير CSS ويمكن تطبيق أنماط عليه. استغرق إنشاء هذا المكوّن عدة سنوات وساعات طويلة من العمل الهندسي والتعاوني على المواصفات، والنتيجة هي مكوّن غني وفعّال بشكل لا يصدق لن يتعطّل في المتصفّحات القديمة.
في ما يلي فيديو يعرض اختيارات مخصّصة باستخدام هذه الميزات الجديدة:
إذا كنت تتابع هذه العملية عن كثب، ستلاحظ أنّ بعض أسماء المواصفات والميزات قد تغيّرت منذ طلب Una للحصول على ملاحظات من المنتدى. لحسن الحظ، إذا كنت قد عملت من هذه المشاركة وكنت مهتمًا بمعرفة التغييرات التي طرأت، أعدّت لك "أونا" أيضًا مشاركة.
تتوفّر أيضًا مستندات جديدة ورائعة على MDN حول عنصر select القابل للتخصيص، وهي مليئة بالتفاصيل.
Meet appearance: base-select
خاصية CSS جديدة appearance: base-select
تضع العنصر <select>
في حالة جديدة قابلة للضبط والتصميم يُشار إليها عادةً باسم الأنماط "الأساسية":
.custom-select {
&, &::picker(select) {
appearance: base-select;
}
}
يؤدي استخدام base-select
إلى فتح قفل عدد من الميزات والسلوكيات الجديدة:
- تغيير محلِّل HTML في المتصفّحات للمحتوى داخل
<select>
- تغيير العناصر الداخلية المعروضة في
<select>
- تعرِض أجزاء وحالات داخلية جديدة لل
<select>
. - مظهر جديد بسيط محسّن للتخصيص
- تظهر الخيارات المعروضة في الطبقة العليا، مثل النافذة المنبثقة.
- الخيارات المعروضة موضَّحة باستخدام
anchor()
.
عند استخدام base-select
، تفقد بعض الميزات والسلوكيات:
- لا يتم عرض
<select>
خارج لوحة المتصفّح. - ولا يؤدي ذلك إلى تنشيط مكونات نظام التشغيل المضمّنة في الأجهزة الجوّالة.
- يتوقف
<select>
عن استخدام عرض أطول<option>
.
يمكن أن يتضمّن <select>
الآن محتوى HTML غنيًا.
قبل أن تتمكّن من تخصيص <select>
، إذا وضعت عناصر مثل صورة أو رسومات SVG في عنصر <option>
، كان المتصفّح سيتجاهلها.
إليك رمز HTML التالي الذي سيقرأه المتصفّح كما كتبته:
<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>
في ما يلي (من اليمين إلى اليسار) Chrome وSafari وFirefox أثناء عرض رمز HTML السابق. إذا كان المتصفّح متوافقًا مع appearance: base-select
، سيظهر ملف SVG في الخيار، وإلا لن يظهر.

هناك خطر في إيقاف المواقع الإلكترونية الحالية التي تستخدم عنصر الاختيار القابل للتخصيص، وذلك بسبب تغييرات في المعالج. يتضمّن Chrome الميزات التي تستند إليها تجربة Finch في حال الحاجة إلى إيقافها في حالات الطوارئ. وإذا سارت الأمور على ما يرام، ستنتهي التجربة وسيتم إرسال الرمز إلى المصدر بشكل دائم.
قابلة للتخصيص بالكامل
يمكن استبدال كل جزء من base-select
وتخصيصه وإضافة حركة إليه. في ما يلي عرض توضيحي يستخدم كل ميزة جديدة لإنشاء تجارب محدّدة معروفة ومفيدة.

يمكنك العثور على المزيد من الأمثلة في قسم "الموارد" في نهاية هذه المشاركة.
واجهات JavaScript التي لم تتغيّر
لا تترتّب أي مخاطر على تفاعلات JavaScript الحالية مع عنصر <select>
.
ومع ذلك، إذا بدأت في إضافة محتوى HTML غني إلى عناصر <option>
، عليك اختبار القيم المحدّدة، لأنّ المتصفّح لا يزال يحلّل الصور وSVG ويتجاهلها. ومع ذلك، تغيّر المنطق لتحديد سلسلة المحتوى المحدّدة، وقد تحتاج إلى إجراء تعديلات استنادًا إلى الخيارات المتاحة لك.
إذا كنت تستخدم سمة value
في <option>
، لا داعي للقلق.
الموارد
كان Chrome أول متصفّح ينفّذ base-select
، ولكن شارك كل متصفّح في المواصفات، وهناك المزيد من العناصر "الأساسية" التي لم تكتمل بعد. هذه ليست سوى البداية.
يُرجى متابعتنا لأنّنا سنواصل إضافة إرشادات وأمثلة ومراجع حول تخصيص عناصر محدّدة. إلى ذلك الحين، يمكنك الاطّلاع على الروابط التالية للحصول على مزيد من المعلومات.
- معايير الويب
- Chrome
- المنتدى
نشكر جميع المشاركين في تحقيق هذا الإنجاز.