مرحبًا بجميع المطورين الرائعين هناك! في هذا المنشور سوف نستكشف استخدام :has()
في مشروع الويب الخاص بك المقبل. :has()
يعد جديدًا نسبيًا ولكنه اكتسب شعبية في مجتمع الواجهة الأمامية من خلال توفير التحكم في العناصر المختلفة في واجهة المستخدم الخاصة بك. دعونا نلقي نظرة على ماهية الفئة الزائفة وكيف يمكننا الاستفادة منها.
بناء الجملة
• :has()
تساعد فئة CSS الزائفة في تصميم عنصر إذا تم العثور على أي من الأشياء التي نبحث عنها بداخله وحسابها. إنه مثل القول، "إذا كان هناك شيء محدد داخل هذا الصندوق، فقم بتصميم الصندوق بهذه الطريقة، وبهذه الطريقة فقط."
:has(<direct-selector>) {
/* ... */
}
مشكلة التصميم
في السنوات الماضية لم تكن لدينا طريقة لتصميم عنصر أصلي استنادًا إلى فرع مباشر لهذا الأصل باستخدام CSS أو عنصر يعتمد على عنصر آخر. في حال كان علينا القيام بذلك، فسنحتاج إلى استخدام بعض جافا سكريبت وتبديل تشغيل/إيقاف الفئات بناءً على بنية HTML. :has()
حل تلك المشكلة.
لنفترض أن لديك عنصرًا من المستوى الأول (h1
) هذا هو عنوان منشور أو شيء من هذا القبيل في صفحة قائمة المدونات، ومن ثم يكون لديك مستوى العنوان 2 (h2
) الذي يتبعه مباشرة. يمكن أن يكون هذا h2 عنوانًا فرعيًا للمنشور. لو كان ذلك h2
حاضر ومهم وبعده مباشرة h1
، قد ترغب في جعل هذا h1 مميزًا. قبل ذلك كان عليك كتابة دالة JS.
طريق المدرسة القديمة – جافا سكريبت
const h1Elements = document.querySelectorAll('h1');
h1Elements.forEach((h1) => {
const h2Sibling = h1.nextElementSibling;
if (h2Sibling && h2Sibling.tagName.toLowerCase() === 'h2') {
h1.classList.add('highlight-content');
}
});
تبحث وظيفة JS هذه عن جميع وحدات h1 التي تحتوي على h2
المضي قدمًا وتطبيق فئة من المحتوى المميز لإنشاء h1
تبرز كمقال مهم.
جديد ومحسّن مع ظهور CSS في العصر الحديث! لقد قطعت إمكانيات ما يمكننا القيام به في المتصفح شوطا طويلا. يمكننا الآن الاستفادة من CSS للقيام بالأشياء التي كان علينا القيام بها تقليديًا باستخدام JavaScript، ليس كل شيء، ولكن بعض الأشياء.
طريقة المدرسة الجديدة – CSS
h1:has(+ h2) {
color: blue;
}
رمي بعض :has() عليه!
الآن يمكنك استخدام :has()
لتحقيق نفس الشيء الذي فعلته وظيفة JS. يقوم CSS هذا بالتحقق من وجود أي h1 ويستخدم ملف الموحد الأخوة التحقق من وجود h2 الذي يتبعه مباشرة، ويضيف اللون الأزرق إلى النص. وفيما يلي بعض حالات الاستخدام عندما :has()
يمكن أن تأتي في متناول اليدين.
: يحتوي على مثال المحدد 1
HTML
<h1>Lorem, ipsum dolor.</h1>
<h2>Lorem ipsum dolor sit amet.</h2>
<p>Lorem, ipsum dolor sit amet consectetur adipisicing elit. Eius, odio voluptatibus est vero iste ad?</p>
<h1>Lorem, ipsum dolor.</h1>
<h2>Lorem ipsum dolor sit amet.</h2>
<p>Lorem, ipsum dolor sit amet consectetur adipisicing elit. Eius, odio voluptatibus est vero iste ad?</p>
<h1>This is a test</h1>
<p>Lorem, ipsum dolor sit amet consectetur adipisicing elit. Eius, odio voluptatibus est vero iste ad?</p>
CSS
h1:has(+ h2) {
color: blue;
}
: يحتوي على مثال المحدد 2
في كثير من الأحيان، نحن كعاملين على الويب نتعامل مع الصور أو نتعامل معها. يمكننا أن نستخدم الأدوات التي Cloudinary يوفر الاستفادة من التحويلات المختلفة على صورنا، ولكننا عادةً ما نريد إضافة ظلال مسقطة، وحدود نصف قطرية، والتسميات التوضيحية (يجب عدم الخلط بينه وبين النص البديل في سمة بديلة).
المثال أدناه يستخدم :has()
لمعرفة ما إذا كان الشكل أو الصورة تحتوي على عنصر تسمية توضيحية، وإذا كان الأمر كذلك، فسيتم تطبيق بعض الخلفية ونصف قطر الحدود لجعل الصورة بارزة.
HTML
<section>
<figure>
<img src="https://placedog.net/500/280" alt="My aunt sally's dog is a golden retreiver." />
<figcaption>My Aunt Sally's Doggo</figcaption>
</figure>
</section>
CSS
figure:has(figcaption) {
background: #c3baba;
padding: 0.6rem;
max-width: 50%;
border-radius: 5px;
}
:has()
ذلك؟
هل استطيع يمكنك مشاهدة هذا :has()
يحظى بدعم كبير عبر المتصفحات الحديثة.
بيانات دعم هذا المتصفح من هل يمكنني استخدام، الذي يحتوي على مزيد من التفاصيل. يشير الرقم إلى أن المتصفح يدعم الميزة في هذا الإصدار وما بعده.
الحاسوب
الكروم | برنامج فايرفوكس | IE | حافة | سفاري |
---|---|---|---|---|
105 | 121 | لا | 105 | 15.4 |
موبايل / جهاز لوحي
Android Chrome | الروبوت فايرفوكس | أندرويد | دائرة الرقابة الداخلية سفاري |
---|---|---|---|
122 | 123 | 122 | 15.4 |
:has()
في المجتمع!
لقد تواصلت مع شبكتي على تويتر لأرى كيف يستخدم زملائي :has()
في عملهم اليومي وهذا ما قالوه عنه.
svg:has(> #Mail) {
stroke-width: 1;
}
إنه لأمر رائع أن نرى كيف يستخدم أعضاء المجتمع CSS الحديث لحل مشاكل العالم الحقيقي، وأيضًا نشيد بـ Abbey لاستخدامه لأسباب تتعلق بإمكانية الوصول!
أشياء لتأخذها بالحسبان
هناك بعض النقاط الأساسية التي يجب وضعها في الاعتبار عند الاستخدام :has()
النقاط المشار إليها من MDN.
- تأخذ الفئة الزائفة خصوصية المحدد الأكثر تحديدًا في حجتها
- إذا كان
:has()
الفئة الزائفة نفسها غير مدعومة في المتصفح، وستفشل كتلة المحدد بأكملها ما لم:has()
موجود في قائمة محددات متسامحة، كما هو الحال في:is()
و:where()
- •
:has()
لا يمكن تداخل فئة زائفة داخل فئة أخرى:has()
- العناصر الزائفة ليست أيضًا محددات صالحة داخلها
:has()
والعناصر الزائفة ليست نقاط ارتساء صالحة لـ:has()
وفي الختام
الاستفادة من قوة CSS، بما في ذلك الميزات المتقدمة مثل :has()
فئة زائفة، تمكننا من صياغة تجارب ويب استثنائية. تكمن نقاط قوة CSS في تسلسلها وخصوصيتها... وأفضل ما في الأمر هو أنها تسمح لنا بالاستفادة من إمكاناتها الكاملة. من خلال تبني إمكانات CSS، يمكننا دفع تصميم الويب وتطويره إلى الأمام، وفتح إمكانيات جديدة وإنشاء واجهات مستخدم رائدة.
الروابط:
- محتوى مدعوم من تحسين محركات البحث وتوزيع العلاقات العامة. تضخيم اليوم.
- PlatoData.Network Vertical Generative Ai. تمكين نفسك. الوصول هنا.
- أفلاطونايستريم. ذكاء Web3. تضخيم المعرفة. الوصول هنا.
- أفلاطون كربون، كلينتك ، الطاقة، بيئة، شمسي، إدارة المخلفات. الوصول هنا.
- أفلاطون هيلث. التكنولوجيا الحيوية وذكاء التجارب السريرية. الوصول هنا.
- المصدر https://css-tricks.com/the-power-of-has-in-css/
- :لديها
- :يكون
- :ليس
- $ UP
- 09
- 1
- 11
- 12
- 13
- 16
- 22
- 27
- 31
- 3rd
- 7
- 8
- 9
- 91
- 98
- a
- من نحن
- حوله
- إمكانية الوصول
- استأثرت
- التأهيل
- في
- Ad
- تضيف
- يضيف
- متقدم
- مميزات
- بعد
- ضد
- الكل
- السماح
- أيضا
- البديل
- an
- الراسية
- و
- الروبوت
- آخر
- أي وقت
- ينطبق
- تطبيق
- هي
- حجة
- البند
- AS
- At
- خلفية
- على أساس
- BE
- لان
- قبل
- أقل من
- أفضل
- حظر
- المدونة
- الأزرق
- الحدود
- صندوق
- المتصفح
- المتصفحات
- ابني
- لكن
- by
- CAN
- لا تستطيع
- قدرات
- تعليق
- الشلالات
- الحالات
- فرصة
- تدقيق
- طفل
- الكروم
- فئة
- فصول
- اللون
- تأتي
- آت
- مجتمع
- اختتام
- الخلط
- مراقبة
- استطاع
- زوجان
- حرفة
- خلق
- CSS
- البيانات
- يوم
- يوما بعد يوم أو من يوم إلى آخر
- تقديم
- تصميم
- التفاصيل
- بكشف أو
- المطورين
- التطوير التجاري
- فعل
- مباشرة
- مباشرة
- do
- وثيقة
- هل
- كلب
- قيادة
- قطرة
- حافة
- العنصر
- عناصر
- احتضان
- إمباورز
- النهاية
- كامل
- كل شىء
- مثال
- استثنائي
- خبرة
- تفسير
- اكتشف
- يفشلون
- الميزات
- المميزات
- قليل
- الشكل
- برنامج فايرفوكس
- متابعيك
- متابعات
- طعام
- في حالة
- إلى الأمام
- وجدت
- تبدأ من
- جبهة
- نهاية المقدمة
- بالإضافة إلى
- وظيفة
- وظيفي
- وظيفة
- اكتسبت
- الذهاب
- الذهبية
- عظيم
- الرائد
- كان
- في المتناول
- يملك
- عنوان
- يساعد
- مرتفع
- تسليط الضوء
- كيفية
- HTML
- HTTP
- HTTPS
- i
- ie
- if
- صورة
- صور
- فورا
- أهمية
- تحسن
- in
- بما فيه
- يشير
- في الداخل
- واجهات
- إلى
- آيفون
- IT
- انها
- نفسها
- جافا سكريبت
- احتفظ
- القفل
- اسم العائلة
- الأقل
- مستوى
- الرافعة المالية
- كذبة
- مثل
- قائمة
- طويل
- بحث
- أبحث
- الكثير
- جعل
- التلاعب
- مباراة
- ماكس العرض
- الأعضاء
- ربما
- مانع
- تقدم
- الأكثر من ذلك
- أكثر
- موزيلا
- my
- الطبيعة
- حاجة
- بحاجة
- شبكة
- جديد
- التالي
- لا
- الآن
- عدد
- of
- on
- ONE
- فقط
- or
- لنا
- خارج
- على مدى
- صفقة
- صفحة
- جزء
- حفلة
- مرت
- الماضي
- الأقران
- أفلاطون
- الذكاء افلاطون البيانات
- أفلاطون داتا
- نقاط
- شعبية
- إمكانيات
- منشور
- محتمل
- قوة
- يقدم
- الهدايا
- سابق
- المشكلة
- مشاكل
- تنفيذ المشاريع
- ويوفر
- التي تم الوصول إليها
- حقيقي
- العالم الحقيقي
- مرجع
- المشار إليه
- نسبي
- نسبيا
- يمثل
- احترام
- قوي
- s
- سفاري
- السلامة
- نفسه
- قول
- قول
- المدرسة
- البحث
- انظر تعريف
- اختيار
- الجلوس
- So
- حل
- حل
- بعض
- شيء
- محدد
- النوعية
- موقف
- المحافظة
- نقاط القوة
- بناء
- نمط
- هذه
- الدعم
- مدعومة
- الدعم
- SVG
- بناء الجملة
- أخذ
- يأخذ
- مع الأخذ
- التكنولوجيا
- نص
- أن
- •
- من مشاركة
- then
- هم
- شيء
- الأشياء
- الوقت
- مرات
- عنوان
- إلى
- أدوات
- تقليديا
- التحولات
- شجرة
- صحيح
- تحول
- أو تويتر
- ui
- ما لم
- فتح
- us
- تستخدم
- مستعمل
- مستخدم
- استخدام
- عادة
- الاستفادة من
- صالح
- مختلف
- الإصدار
- المزيد
- vs
- تريد
- وكان
- طريق..
- we
- الويب
- كان
- ابحث عن
- متى
- التي
- سوف
- مع
- في غضون
- رائع
- للعمل
- العمال
- عامل
- العالم
- سوف
- اكتب
- سنوات
- حتى الآن
- أنت
- حل متجر العقارات الشامل الخاص بك في جورجيا
- زفيرنت