ForHosting KIT · قراءة المواقع ومراقبتها

حاسبة خصوصية محددات CSS

تحدد خصوصية CSS أي تصريح متنافس يمكنه أن يسود قبل مراعاة ترتيب المصدر وقواعد التتابع الأخرى.

● Betaمجاني · داخل متصفحك
استخدمها من الويبAPIالبريدTelegramالتطبيق قريبًا

تستقبل هذه الحاسبة محدداً واحداً، وتتحقق من بنيته، ثم تعيد العد المألوف المؤلف من أربعة أجزاء: الأنماط المضمنة، والمعرفات، والفئات أو السمات أو الفئات الزائفة، وأنواع العناصر أو العناصر الزائفة. كما تطبق القواعد الخاصة بالمحددات الحديثة مثل :is() و:not() و:has() و:where() و:nth-child(). يمكنكم استخدامها لتفسير تجاوز غير متوقع، أو مقارنة المحددات أثناء إعادة الهيكلة، أو إضافة فحص موثوق للخصوصية إلى أدوات التطوير لديكم.

قراءة نتيجة الخصوصية ذات الأجزاء الأربعة

تظهر النتيجة بالصيغة (مضمن، معرف، فئة، نوع). يمثل الموضع الأول تصريحات الأنماط المضمنة، ولأن الأداة تستقبل محدد CSS لا سمة style في HTML، فإن هذه القيمة تساوي صفراً دائماً. يحصي الموضع الثاني محددات المعرف مثل <code>#checkout</code>. ويجمع الموضع الثالث محددات الفئات والسمات والفئات الزائفة، لذلك يضيف كل من <code>.button</code> و<code>[disabled]</code> و<code>:hover</code> وحدة واحدة. أما الموضع الرابع فيحصي محددات أنواع العناصر والعناصر الزائفة، ومن ثم يضيف كل من <code>button</code> و<code>::before</code> وحدة واحدة. لا تضيف المحددات العامة ولا عوامل الربط أي قيمة. قارنوا الرباعية من اليسار إلى اليمين، ولا تجمعوها في رقم عشري واحد؛ فمعرف واحد يتفوق على أي عدد من الفئات، وفئة واحدة تتفوق على أي عدد من الأنواع. تسهل الحقول المسماة استخدام النتيجة برمجياً، بينما تحفظ مصفوفة الخصوصية الشكل المتعارف عليه. تذكروا أن الخصوصية ليست سوى جزء من التتابع. فقد يظل أصل القاعدة وأهميتها وطبقات التتابع وقرب النطاق وترتيب المصدر عوامل تحدد التصريح الفائز في الصفحة الفعلية.

فهم قواعد الفئات الزائفة الدالية

تتطلب الفئات الزائفة الدالية الحديثة أكثر من مجرد عد كل رمز. تسهم <code>:is()</code> و<code>:not()</code> و<code>:has()</code> بخصوصية أقوى محدد في قائمة وسائطها، ولا يضيف الغلاف نفسه قيمة على مستوى الفئات. وعلى النقيض، تسهم <code>:where()</code> بصفر دائماً حتى إذا احتوت وسيطتها على معرف. وهذا يجعلها مفيدة في القيم الافتراضية للمكتبات التي ينبغي أن تبقى سهلة التجاوز. تضيف الفئتان البنيويتان <code>:nth-child()</code> و<code>:nth-last-child()</code> وحدة فئة زائفة، وإذا وجدت قائمة محددات اختيارية بعد <code>of</code> فإنهما تضيفان أيضاً أقوى عضو فيها. تحسب الفئات الزائفة الدالية الأخرى على مستوى الفئة، بينما تحسب العناصر الزائفة على مستوى النوع. ويتعرف المحلل أيضاً على المحددات النسبية داخل <code>:has()</code>، والمحارف المهربة في المعرفات، وقيم السمات التي تحتوي علامات ترقيم، ونطاقات الأسماء، والصيغ القديمة ذات النقطتين المفردتين <code>:before</code> و<code>:after</code> و<code>:first-line</code> و<code>:first-letter</code>. تعكس هذه الفروق طريقة التعامل مع CSS الحديث بدلاً من اعتبار ما بين القوسين نصاً مبهماً.

اكتشاف أخطاء المحدد بواسطة التحقق

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

تشخيص تجاوز مستعصٍ

قارنوا المحددات المتنافسة واعرفوا أي جزء من الخصوصية يجعل قاعدة تتفوق على أخرى.

مراجعة إعادة هيكلة أوراق الأنماط

تحققوا من أن تبسيط المحدد يخفض الخصوصية من دون إدخال معرف أو وزن إضافي لفئة زائفة عن غير قصد.

تعزيز أدوات التطوير

أضيفوا تحققاً حتمياً وقيماً منظمة للخصوصية إلى أداة تدقيق أو محرر أو تقرير تكامل مستمر.

ماذا تعني قيمة النمط المضمن؟

تمثل تصريحات الأنماط المضمنة. وهي تساوي صفراً دائماً هنا لأن الإدخال محدد CSS وليس سمة style في HTML.

هل تزيد :where() الخصوصية؟

لا. تسهم :where() ووسيطتها كاملة بصفر دائماً، مع استمرار التحقق من صحة بنية المحدد داخل الوسيطة.

كيف تحسب :is() و:not() و:has()؟

تسهم بخصوصية أقوى محدد في قائمة الوسائط، ولا تضيف الفئة الزائفة الدالية نفسها أي وزن مستقل.

هل يمكنني إرسال قائمة محددات مفصولة بفواصل؟

لا. أرسلوا كل محدد من المستوى الأعلى منفرداً لأن أعضاء القائمة قد تكون لهم قيم خصوصية مختلفة.

هل تفوز الخصوصية الأعلى دائماً؟

لا. قد تكون لأصل القاعدة وأهميتها وطبقاتها وقرب نطاقها وترتيب المصدر أولوية، أو قد تحسم التعادل.

ما تكلفة طلب API؟

تكلفة كل طلب API هي $0.002. ويمكن تشغيل إصدار المتصفح محلياً من دون إرسال المحدد إلى خادم.

كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.

POSThttps://api.kit.forhosting.com/web/css-specificity-calc

صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.

curl -X POST https://api.kit.forhosting.com/web/css-specificity-calc \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"selector":"article#main.card[data-state='\''open'\'']:hover > h2::before"}'
{
  "selector": "article#main.card[data-state='open']:hover > h2::before"
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "web.css_specificity_calc",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.

لكل طلب$0.002

السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.

max_chars10000
HTTPالرمزالمعنى
401unauthorizedمفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك.
402insufficient_balanceرصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة.
404unknown_typeنوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب.
429rate_limitedتجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة.

اطّلع على توثيق KIT الكامل ←