مختبر محددات CSS
انظر ما الذي يطابقه محددك
يأخذ مختبر محددات css هذا ترميزك ومحددك، ثم يعرض كل عنصر يصل إليه المحدد. لذلك تقرأ المطابقات بدلًا من تخمينها. والعمل يجري في متصفحك، لأننا لا نرفع شيئًا.
- مجانيالسعر
- خمسةالأوضاع
- بلاالتسجيل
- بلاالرفع
مختبر محددات CSS
شغّل محددًا على ترميزك الخاص وانظر بالضبط إلى ما يصل إليه
- العناصر المطابقة
- —
جاهز. الصق بعض الترميز، واكتب محددًا فتظهر المطابقات.
ما الذي يفعله مختبر محددات CSS
المحدد سؤال عن ترميزك. ومختبر محددات css هذا يجيب عنه أمامك، لذلك يختفي التخمين. الصق الترميز، واكتب المحدد، ثم اقرأ العناصر التي يصل إليها.
أربعة أسئلة تغطي العمل كله تقريبًا. أولًا، أي العناصر يصل إليها هذا المحدد؟ ثم، ماذا يقول المحدد فعلًا بكلمات واضحة؟ بعد ذلك، ما قوته في مواجهة قاعدة منافسة؟ وأخيرًا، ما أقصر محدد لعنصر تستطيع الإشارة إليه؟
هذه ليست أداة أوراق أنماط. ولأن تصغير CSS وترتيبه عمل آخر، يتولى مصغّر CSS ذلك الجانب. أما الموضوع هنا فهو المطابقة، ولا شيء غيرها.
لا شيء يُثبَّت. لذلك تلصق قصاصة، وتقرأ الجواب، ثم تغلق التبويب وقتما شئت.
كيف يعمل مختبر محددات CSS
ينقسم العمل إلى ثلاث خطوات. أولًا تقرأ الصفحة ترميزك في شجرة من الوسوم والخواص. ثم تُعاد بناء تلك الشجرة عناصر حقيقية لا تدخل الصفحة أبدًا. وأخيرًا يعمل محددك على النسخة المُعاد بناؤها، فترجع المطابقات بترتيب المستند.
محرك المطابقة هو محرك المتصفح. ولأن قواعد Selectors Level 4 طويلة ومليئة بالحالات الطرفية، فإن محركًا مكتوبًا باليد سينحرف عن الصفحات الحقيقية عاجلًا أو آجلًا. لذلك تسأل هذه الصفحة المحرك الموجود في متصفحك أصلًا، لأنه المحرك نفسه الذي سيحكم على موقعك.
تبقى النسخة المُعاد بناؤها منفصلة. لذلك لا أنماط لها، ولا سكربتات، ولا تخطيط. وهذا مقصود، لأن السؤال هنا هو أي العناصر يصل إليها المحدد، لا كيف ستظهر.
جرّب محددًا على ترميزك
المحدد الذي يعمل في درس قد يخطئ ترميزك مع ذلك. لذلك فإن الاختبار الصادق هو قصاصتك، ملصوقة كما هي. انسخ كتلة من شيفرة مصدر الصفحة وضعها هنا.
![لقطة من مختبر محددات CSS في وضع المطابقة: قصاصة تنقّل ملصوقة على اليمين تحتوي ثلاثة عناصر قائمة، والمحدد .list .item a[data-track] على اليسار، وعدد يقول 2 من 8، والرابطان المطابقان مسرودان تحته، لكل منهما مساره في الشجرة حتى تستطيع التمييز بين الاثنين](/wp-content/themes/denwix/assets/img/tools/cssel-match.webp?v=3.123.4)
كل مطابقة تأتي مع سياقها. لذلك تحصل على العدد أولًا، ثم كل عنصر مطابق مع وسم فتحه، والمسار الذي يقود إليه من أعلى القصاصة.
المسار هو الجزء المفيد. ولأن مطابقتين تبدوان متماثلتين غالبًا، يكشف المسار أيّهما أيّ. بعد ذلك يصبح تضييق محدد يأخذ عنصرًا زائدًا أمرًا سهلًا.
النتيجة الفارغة جواب أيضًا. لكنها الجواب الذي يُفلت، لذلك تقول الصفحة بوضوح إن شيئًا لم يطابق بدلًا من عرض صندوق فارغ.
ما الذي يُسقَط قبل المطابقة
تتعامل هذه الأداة مع ما تلصقه كنص، لا كصفحة أبدًا. لذلك تترك إعادة البناء وسوم script وstyle وأطر iframe والعناصر المدمجة خارجها تمامًا.
وتسلك خواص الأحداث الطريق نفسه. ولأن الصفحة الحيّة وحدها تستفيد من onclick أو onerror، تُسقطها إعادة البناء مع الوسوم التي كانت تحملها. كما أن عنوان javascript: في خاصية href يفقد وسمه كذلك.
أما الباقي فينجو سليمًا. لذلك تبقى أصنافك ومعرّفاتك وخواص data والتداخل كلها هناك لكي يتعلّق بها المحدد.
مختبر محددات jQuery دون jQuery
نصف المحددات التي يلصقها الناس ليست CSS على الإطلاق. فهي تأتي من jQuery، الذي أضاف صيغه الخاصة مثل :first و:eq() و:contains(). ومختبر محددات css بسيط كان سيرفضها بلا شك.

أما هذا فيجيب على أي حال. ولأن تلك الصيغ تُختصر إلى موضع أو اختبار نص على قائمة مطابقات، تطبّقها الصفحة بنفسها بعد تشغيل جزء CSS. لذلك يعيش مختبر محددات jquery هنا دون سطر واحد من jQuery في الصفحة.
وتعرض الصفحة الترجمة بدلًا من إخفائها. لذلك ترى أي جزء كان CSS قياسيًا وأي جزء تولّته الصفحة بعدها. وبهذه الطريقة لا يخفي محدد تنقله إلى querySelectorAll أي مفاجأة.
وبعض الصيغ لا نظير لها. على أي حال تسمّيها الصفحة بدلًا من التظاهر، وهذا هو الشيء المفيد الوحيد مع محدد لا يستطيع شيء الوصول إليه.
كيف يختلف :first و:eq عن CSS
المصائد هي تلك التي تبدو بريئة. فـ :first يأخذ عنصرًا واحدًا من قائمة المطابقات كلها، لكن :first-child و:first-of-type يسألان عن موضع العنصر بين أشقائه.
وهذا الفرق يعضّ على ترميز حقيقي. لأن قائمة من عشرة عناصر فيها عشرة مرشحين لـ first-of-type في عشرة آباء مختلفين، لكن واحدًا منهم فقط هو المطابقة الأولى في القائمة. لذلك تجيب الصيغتان عن سؤالين مختلفين.
حاسبة أولوية CSS
المطابقة نصف حكاية القاعدة فقط. والنصف الآخر هو القوة، التي يحسمها التراتب بعدّ أجزاء المحدد. لذلك تورد حاسبة أولوية css هذه ذلك العدّ على صورة الأرقام الثلاثة التي تستخدمها المتصفحات فعلًا.

والأرقام الثلاثة سهلة القراءة. أولًا تأتي محددات المعرّف، ثم الأصناف والخواص والأصناف الزائفة، وأخيرًا أسماء العناصر والعناصر الزائفة. بعد ذلك تصبح المقارنة قراءة بسيطة من اليسار إلى اليمين.
والأنماط المضمّنة وimportant تقعان خارج الثلاثية. لكن الصفحة تقول أين تهبطان، لأن قاعدة تخسر على الورق قد تفوز في المتصفح مع ذلك لأحد هذين السببين.
وقواعد الأولوية تكافئ المحددات القصيرة. لذلك يكون المحدد الأقل درجة غالبًا هو الأفضل للإرسال إلى الإنتاج، لأنه يبقى سهل الاستبدال لاحقًا.
أي المحددين يفوز
الصق محددين فيأتي الجواب في الحال. ولأن الثلاثيتين تظهران جنبًا إلى جنب، يبدو الفائز دون عدّ أي شيء باليد.
وتسمّي الصفحة التعادل تعادلًا. ثم تفوز القاعدة التي تظهر لاحقًا في ورقة الأنماط، وتقول الصفحة ذلك بدلًا من أن تدعك تتذكره.
اقرأ محددًا بكلمات واضحة
المحدد الطويل يخفي معناه. لذلك تعيد الصفحة قراءته جملةً، جزءًا جزءًا، بالترتيب الذي يطبّقه المتصفح.

ولا تحتاج القراءة إلى أي ترميز. لأن الشرح يأتي من بنية المحدد نفسها، تستطيع فحص محدد خرج من مراجعة شيفرة قبل أن تملك الصفحة التي ينتمي إليها.
وروابط التركيب هي المكان الذي يزلّ فيه الناس. لذلك تُسمّى المسافة وعلامة أكبر من والزائد والمدّة كل منها بالكلمات، لأن السليل والابن والشقيق التالي والشقيق اللاحق أربعة أسئلة مختلفة.
والعادة نفسها تساعد مع ترميز لم تكتبه أنت. فبعد قراءة سريعة للمحدد، تشرح نظرة إلى خرج مصغّر HTML أو إلى شيفرة مصدر الصفحة باقي الحكاية غالبًا.
محدد لعنصر واحد
أحيانًا يأتي العنصر أولًا وتحتاج إلى المحدد الذي يصل إليه. لذلك اختر عقدة في الشجرة المحلَّلة، فتقترح الصفحة أقصر محدد يصل إلى ذلك العنصر وحده.
والهدف قصير، لا ذكي. لأن المعرّف وحده يكفي غالبًا، تجرّب الصفحة ذلك أولًا، ثم صنفًا، وبعد ذلك فقط مسارًا عبر الآباء.
ما لن تفعله هذه الصفحة
لن تشغّل JavaScript الخاص بك. لأن النسخة المُعاد بناؤها خامدة بالقصد، فإن محددًا يعتمد على سكربت عمل سابقًا لن يطابق هنا.
ولن تطابق حالة. لكن تلك خاصية أي ترميز منفصل: فـ hover وfocus وvisited وtarget تصف صفحة حيّة، لذلك تبقى فارغة.
ولن تنسّق شيئًا. مختبر المحددات يجيب عن سؤال أي العناصر، لأن شكل تلك العناصر سؤال منفصل للمتصفح الذي تستهدفه.
استخدام مختبر محددات CSS، خطوة بخطوة
أربع خطوات تحوّل محددًا تشك فيه إلى قائمة تستطيع قراءتها.
- 1
الصق ترميزك
القصاصة تكفي، والصفحة الكاملة تعمل كذلك.
- 2
اكتب المحدد
عدد المطابقات يتحدّث أثناء كتابتك، لذلك يظهر الخطأ المطبعي في الحال.
- 3
اقرأ المطابقات
كل عنصر مطابق يأتي مع وسم فتحه ومساره.
- 4
افحص القوة
ثلاثية الأولوية تقول لك كم سيصعب استبدال القاعدة.
ما الذي يفعله مختبر محددات CSS هذا بشكل مختلف
محرك المتصفح نفسه، وصيغ jQuery دون jQuery، ولا شيء يذهب إلى الإنتاج أبدًا.
يستخدم المحرك الحقيقي
متصفحك هو من يجيب عن المحدد، لذلك تطابق النتيجة ما سيحصل عليه موقعك.
لا يشغّل ترميزك أبدًا
إعادة البناء تُسقط السكربتات والأنماط وخواص الأحداث قبل أن يعمل المحدد.
يتحدث jQuery أيضًا
تحسب الصفحة صيغ :first و:eq و:contains دون تحميل أي مكتبة.
يعدّ الأولوية
كل محدد يحصل على ثلاثيته، ثم يُقارَن محددان مباشرة.
يشرح نفسه
تعيد الصفحة قراءة محدد طويل جملةً، رابط تركيب بعد رابط.
يبقى في متصفحك
الترميز غير المنشور لا يترك جهازك أبدًا، لأن شيئًا لا يُرفع.
إصابة المحدد من المحاولة الأولى
عادات قليلة تبقي المحدد قصيرًا ومستقرًا.
- اختبر على ترميز حقيقي الصق القصاصة من صفحتك، لأن المثال المرتّب يخفي الحالات المزعجة.
- فضّل الدرجة الأدنى المحدد الذي يفوز بصنف أسهل في الاستبدال من المحدد الذي يفوز بمعرّف.
- سمِّ رابط التركيب بالقصد محدد الابن يقول ما يكتفي محدد السليل بالتلويح به، لذلك استخدمه حين يكون هو ما تقصده.
- افحص العدد، لا المطابقة الأولى المحدد الذي يصل إلى أربعة عناصر وأنت تريد واحدًا يبدو صحيحًا في الأعلى مع ذلك.
أخطاء شائعة عند كتابة محدد
كل خطأ من هذه يصل إلى شيء، لكنه ليس ما قصدته.
الخلط بين :first و:first-child
أحدهما يأخذ مطابقة واحدة من القائمة، لكن الآخر يسأل عن كل أب على حدة.
الاعتماد على معرّف طلبًا للقوة
المعرّف يفوز اليوم ويمنع كل استبدال غدًا، لذلك يكون الصنف عادةً الأداة الأفضل.
نسيان أن المسافة تعني السليل
المسافة الزائدة بين جزأين تحوّل سؤالًا إلى سؤال أوسع بكثير.
إساءة وضع قيمة خاصية بين علامتي تنصيص
القيمة التي فيها مسافة أو شَرطة تحتاج إلى علامتي تنصيص، لأن المحدد يصبح غير صالح بغيرها.
الاختبار على ترميز رتّبته أولًا
الغلاف الذي أزلته باليد هو غالبًا ما يعتمد عليه المحدد الحقيقي.
أسئلة شائعة عن مختبر محددات CSS
ما هو مختبر محددات CSS؟
هو صفحة تأخذ ترميزك ومحددًا، ثم تعرض كل عنصر يصل إليه المحدد. لذلك تقرأ الجواب مباشرة بدلًا من إعادة تحميل موقع لترى إن كانت القاعدة قد طُبّقت.
هل يترك ترميزي المتصفح؟
لا. التحليل وإعادة البناء والمطابقة كلها تجري على جهازك. لذلك يبقى الترميز غير المنشور خاصًا، ولا يرى أي خادم القصاصة التي لصقتها.
أي المحددات مدعومة؟
كل ما يدعمه متصفحك، لأن المتصفح هو من يجري المطابقة. وهذا يغطي مجموعة Selectors Level 4، أي :is و:where و:not و:has على المتصفحات الحالية.
لماذا لا يطابق :hover شيئًا أبدًا؟
لأن الترميز المُعاد بناؤه منفصل، فلا أحد يستطيع تحريك المؤشر فوقه. وينطبق الأمر نفسه على focus وvisited وtarget، لأن الأربعة جميعًا تصف صفحة حيّة لا بنية مستند.
هل أستطيع تجربة محددات jQuery هنا؟
نعم. الصيغ الخاصة بـ jQuery مثل :first و:eq() و:contains() تُحسب بعد تشغيل جزء CSS. لذلك تعمل الصفحة كمختبر محددات jquery دون تحميل jQuery.
ماذا تعني ثلاثية الأولوية؟
الأرقام الثلاثة تعدّ محددات المعرّف، ثم الأصناف مع الخواص والأصناف الزائفة، وأخيرًا أسماء العناصر. ويقارنها المتصفح من اليسار إلى اليمين، وأول فرق يحسم الفائز.
وأين تقع الأنماط المضمّنة؟
تقف فوق كل محدد في التراتب، لذلك لا تهزمها أي ثلاثية. والإعلان الموسوم بـ important يقف أعلى من ذلك أيضًا، ولهذا تسمّي الصفحة الحالتين بدلًا من منحهما درجة.
هل يفوز المحدد الأطول دائمًا؟
لا. الطول لا يُحتسب، وإنما تُحتسب الأجزاء وحدها. لذلك تخسر عشرة أسماء عناصر أمام صنف واحد، أيًا كان طول المحدد في نظرك.
لماذا تتصرف قاعدتان لهما الدرجة نفسها تصرفًا مختلفًا؟
لأن التعادل يُحسم بالترتيب. القاعدة التي تظهر لاحقًا في ورقة الأنماط هي التي تُطبَّق، لذلك قد يغيّر نقل كتلة واحدة شكل الصفحة دون تغيير أي محدد.
هل هذا مدقق CSS؟
لا. المدقق يفحص ورقة أنماط كاملة في مواجهة القواعد النحوية. وهذه الصفحة تجيب عن محدد واحد في كل مرة، لكنها تخبرك متى يكون المحدد غير صالح.
هل أستطيع لصق صفحة كاملة؟
نعم. المستند الكامل يعمل، وعنصر واحد يعمل كذلك. على أي حال تجعل القصاصة الأصغر قائمة المطابقات أسهل في القراءة.
وماذا يحدث لوسوم script في ترميزي؟
تُسقَط قبل إعادة البناء، مع الأنماط وأطر iframe والعناصر المدمجة. ولأن شيئًا لا يُضاف أبدًا إلى الصفحة الحيّة، فإن سكربتًا ملصوقًا لا يجد ما يعمل فيه.
لماذا لا يصل محددي إلى شيء؟
غالبًا يكون هناك أب مفقود من القصاصة. فمحدد السليل يحتاج إلى الجدّ أيضًا، لذلك انسخ مستوى أعلى وحاول مرة أخرى.
هل يعدّل المختبر ترميزي؟
يترك نصّك كما هو في الصندوق. والنسخة المُعاد بناؤها تُسقط الوسوم غير الآمنة، لكن أصنافك ومعرّفاتك وخواص data والتداخل تبقى جميعها للمطابقة.
وكيف يختلف عن مختبر XPath؟
يستعلم XPath عن XML بلغة مسارات، وتستعلم محددات CSS عن الترميز بصيغة أقصر بكثير. و<a href="/xpath-tester/">مختبر XPath</a> يغطي العمل الأول.
هل أستطيع الحصول على محدد لعنصر أراه؟
نعم. اختر العقدة في الشجرة المحلَّلة فتقترح الصفحة أقصر محدد يصل إليها وحدها. لذلك يُجرَّب المعرّف أولًا، ثم صنف، ثم مسار.
هل يتعامل مع محددات الخواص؟
كلها، بما فيها صيغ البادئة واللاحقة والنص الجزئي. كما أن القيمة التي تحتوي مسافة أو شَرطة تحتاج إلى علامتي تنصيص.
هل يبطئ :has الصفحة؟
ليس هنا، لأن القصاصة صغيرة ومنفصلة. أما على موقع حقيقي فإن :has أغلى من محدد صنف، لذلك قِس قبل أن تعتمد عليه.
هل أستطيع استخدامه مع querySelectorAll في JavaScript؟
نعم، وهذه هي المقارنة الصادقة. لأن querySelectorAll يستخدم المحرك نفسه، فإن المحدد الذي يعمل هنا يعمل في سكربتك.
لماذا يتحدّث العدد أثناء كتابتي؟
لكي يظهر الخطأ المطبعي في الحال. فالمحدد الذي فيه مسافة زائدة يهبط غالبًا إلى صفر مطابقة، وهذا رجع صدى أسرع من إعادة تحميل الصفحة.
هل هناك حد لحجم الترميز؟
جهازك وحده. فالقصاصة بحجم صفحة تُطابق في لحظة، كما تبقى شجرة العرض صالحة للاستخدام إلى ما بعد ذلك بكثير.
هل أحتاج إلى حساب؟
لا. مختبر محددات css مجاني، ولا يطلب أي تسجيل، كما أنه لا يحتفظ بشيء بعد أن تغلق التبويب.
رفقاء مفيدون لعمل الواجهة
المحدد سؤال. وهذه الثلاث تجيب عن الأسئلة المجاورة له.
مختبر XPath
شغّل تعبير مسار على XML واقرأ العقد التي يرجعها.
افتح الأداة ←مختبر JSONPath
استعلم عن مستند JSON بمرشحات وقطع ودوال.
افتح الأداة ←مصغّر CSS
صغّر ورقة الأنماط بعد أن تصبح المحددات داخلها صحيحة.
افتح الأداة ←
جاهز لتجربة محدد؟
الصق الترميز، واكتب محددًا، ثم اقرأ العناصر التي يصل إليها. هذا مختبر محددات css مجاني، ولا يطلب أي حساب، ولا يترك شيء مما تلصقه متصفحك.