اجعل مكوّناتك متجاوبة مع حاويتها بدلًا من المنفذ، ونظّم أوراق أنماطك بالتعشيش الأصيل.
افتح هذا الدرس في Kodokonاستعلامات الوسائط تقيس المنفذ: بطاقة معروضة في شريط جانبي ضيق وفي شبكة رئيسية معًا لا تستطيع التكيّف بشكل صحيح بها، لأن عرض الشاشة نفسه يقابل سياقين مختلفين. استعلامات الحاوية تحلّ هذا الفصل: يستعلم المكوّن عن حجم حاويته. الشرط المسبق: عيّن حاوية صراحةً بـ container-type (inline-size لقياس المحور الأفقي فقط، وهي الحالة الشائعة)، مع تسميتها اختياريًا عبر container-name.
.sidebar {
container-type: inline-size;
container-name: sidebar;
}
@container sidebar (min-width: 400px) {
.widget {
display: grid;
grid-template-columns: 80px 1fr;
gap: 12px;
}
}وحدات الحاوية تكمل الصورة: 1cqi تساوي 1% من الحجم السطري للحاوية المستعلَم عنها (وتوجد أيضًا cqw وcqh وcqb وcqmin وcqmax). ودمجها مع clamp() ينتج طباعة مرنة لكل مكوّن: البطاقة نفسها تحصل على عنوان متناسب مع عمودها، أينما وُضعت.
.card-slot {
container-type: inline-size;
}
.card h2 {
font-size: clamp(1rem, 5cqi, 1.75rem);
}
@container (max-width: 300px) {
.card .meta {
display: none;
}
}التعشيش الأصيل يجلب أخيرًا التعشيش دون معالج مسبق. المحدِّد & يشير إلى سياق الأب؛ واستعلامات الوسائط و@container تتعشّش مباشرةً داخل القاعدة. فرق حاسم عن Sass: يُعامَل الأب المُعشَّش كأنه ملفوف في :is(). نتيجتان: خصوصية الأب هي خصوصية أقوى محدِّداته إن كان قائمة، و& .child لا يجري ربط سلاسل نصية - فنمط Sass &__element لتوليد أسماء BEM غير موجود أصيلًا.
.menu {
display: flex;
gap: 8px;
& > li {
list-style: none;
&:hover {
background: #f3f4f6;
}
}
@media (min-width: 768px) {
gap: 16px;
}
}5cqi؟