SASS `@at-root`
تشرح هذه المقالة توجيه @at-root
في SASS۔
سنغطي كل شيء من الاستخدام الأساسي لـ @at-root
إلى أمثلة متقدمة، خطوة بخطوة۔
YouTube Video
حول SASS @at-root
@@at-root
هو توجيه يقدمه SASS ويُستخدم لنقل المحددات أو الخصائص المتداخلة من التعشيق الحالي إلى نطاق الأب۔ من خلال الاستفادة من هذه الميزة، يمكنك التحكم في عمق التعشيق وتوليد CSS المقصود بكفاءة أكبر۔
الاستخدام الأساسي لـ @at-root
التعشيق في SASS يجعل الشفرة أكثر قابلية للقراءة، لكن التعشيق العميق جدًا قد يؤدي إلى توليد CSS غير مقصود۔ باستخدام @at-root
، يمكنك استثناء كتل شفرات محددة من بنية التعشيق۔
الصياغة الأساسية
1@at-root {
2 // Code to be output at the parent (root) scope
3}
مثال على الاستخدام
1.nav {
2 color: blue;
3 @at-root {
4 .nav-item {
5 color: red;
6 }
7 }
8}
CSS المترجم
1.nav {
2 color: blue;
3}
4.nav-item {
5 color: red;
6}
- بفضل
@at-root
، يتم إخراج.nav-item
خارج.nav
۔
@at-root في المحددات المتداخلة
حتى ضمن تعشيق عميق، يتيح لك استخدام @at-root
نقل محددات معينة إلى المستوى الجذري۔ هذا يمكّنك من إخراج CSS مضبوط حتى ضمن بنيات معقدة۔
مثال على الاستخدام
1.card {
2 background: white;
3 .card-header {
4 color: black;
5 @at-root .card-title {
6 font-size: 20px;
7 }
8 }
9}
CSS المترجم
1.card {
2 background: white;
3}
4.card .card-header {
5 color: black;
6}
7.card-title {
8 font-size: 20px;
9}
- باستخدام
@at-root
، يتم إخراج.card-title
خارج.card-header
۔
@at-root مع وسيطات
من خلال تحديد وسيطات، يمكن التحكم في @at-root
بمرونة أكبر۔
بدون وسيطة
عند استخدام الوسيطة without
، يتجاهل الإخراج النطاقات المحددة۔ بعبارة أخرى، يمكنك إزالة قواعد الأصل أو استعلامات الوسائط۔
مثال على الاستخدام
1.nav {
2 @media (min-width: 768px) {
3 &__item {
4 @at-root (without: media) {
5 color: red;
6 }
7 }
8 }
9}
CSS المترجم
1.nav__item {
2 color: red;
3}
- في هذه الحالة، يستبعد
@at-root (without: media)
نطاق استعلامات الوسائط، ويتم إخراج.nav__item
على مستوى الجذر۔
مع وسيطة
استخدام with
يُبقي فقط النطاقات المحددة في الإخراج۔ يكون مفيدًا عندما تريد الإخراج إلى الجذر مع الإبقاء على نطاقات معينة۔
مثال على الاستخدام
1.nav {
2 &__item {
3 @media (min-width: 768px) {
4 @at-root (with: media) {
5 &-large {
6 font-size: 18px;
7 }
8 }
9 }
10 }
11}
CSS المترجم
1@media (min-width: 768px) {
2 .nav__item-large {
3 font-size: 18px;
4 }
5}
@at-root (with: media)
ينقل المحدّد إلى الجذر مع الحفاظ على بنية استعلامات الوسائط۔
تحديد شروط متعددة
يمكنك أيضًا تحديد عدة نطاقات في آن واحد، تفصلها مسافات۔
مثال على الاستخدام
1.wrapper {
2 @media (min-width: 600px) {
3 @at-root (without: rule media) {
4 .global-style {
5 color: green;
6 }
7 }
8 }
9}
CSS المترجم
1.global-style {
2 color: green;
3}
- في هذا المثال، يتم استبعاد كلٍ من
rule
(المحددات العادية) وmedia
(استعلامات الوسائط)، لذا لا ينتمي.global-style
إلى أي نطاق ويتم إخراجه بالكامل على مستوى الجذر۔ يكون هذا مفيدًا عندما ترغب عمدًا في تعريف أنماط عامة حتى ضمن تعشيق معقد۔
الدمج مع استعلامات الوسائط
باستخدام @at-root
، يمكنك إخراج أنماط على مستوى الجذر من داخل استعلامات الوسائط۔ يتيح لك هذا تحديد التصميم المتجاوب على مستوى المكوّن۔
مثال على الاستخدام
1.container {
2 @media (min-width: 768px) {
3 @at-root {
4 .container-large {
5 width: 80%;
6 }
7 }
8 }
9}
CSS المترجم
1.container-large {
2 width: 80%;
3}
- باستخدام
@at-root
، يمكنك أيضًا إخراج أنماط على مستوى الجذر من داخل استعلامات الوسائط۔ يسهّل ذلك تعريف أنماط عامة مستقلة لكل نقطة توقف۔
حالات استخدام @at-root
@at-root
مفيد عندما تريد إخراج الأنماط على مستوى الجذر ضمن ظروف محددة۔ وهو مفيد بشكل خاص عند التعامل مع استعلامات الوسائط أو الأنماط الخاصة بالسمات داخل المكوّنات۔
فصل المكوّنات والسمات
باستخدام @at-root
، يمكنك إنشاء أصناف عامة مستقلة حتى من داخل استعلامات الوسائط۔ يسهّل ذلك تنظيم السمات والحالات لكل مكوّن۔
مثال على الاستخدام
1.card {
2 background: white;
3 color: black;
4
5 @media (prefers-color-scheme: dark) {
6 @at-root (with: media) {
7 .card-dark {
8 background: #222;
9 color: white;
10 }
11 }
12 }
13}
CSS المترجم
1.card {
2 background: white;
3 color: black;
4}
5
6@media (prefers-color-scheme: dark) {
7 .card-dark {
8 background: #222;
9 color: white;
10 }
11}
- في هذا المثال، أثناء تعريف أنماط السمة الداكنة داخل
.card
، يُنشئ@at-root
صنفًا منفصلًا باسم.card-dark
۔ يتيح لك ذلك تبديل الأصناف بمرونة عبر سمات مختلفة۔
ملاحظات
عند استخدام @at-root
، ضع النقاط التالية في الاعتبار۔
-
تجنب الإفراط في الاستخدام
@at-root
قوي، لكن الإفراط في استخدامه قد يطمس القصد من التعشيق لديك۔ -
وضّح القصد ترك تعليقات تشرح سبب استخدامك لـ
@at-root
يسهّل على المطورين الآخرين الفهم۔ -
انتبه لاتساق النطاق قد يغيّر نقل الإخراج إلى الجذر تبعيات الأنماط۔ كن واضحًا بشأن العناصر التي ينطبق عليها۔
-
اجمعه مع ميزات SASS الأخرى يُمكّن الجمع بين
@at-root
و@mixin
و@function
من تصميم CSS أكثر مرونة۔
الملخص
{^ i18n_speak
@at-root
は、SASSのネスト構文を補完する強力なツールです。不要なネストを解消し、構造を整理することで、より明確で再利用性の高いCSSを生成できます。スコープの理解を深め、目的に応じて使い分けることで、プロジェクト全体の可読性と保守性を高めることができます。^}
يمكنك متابعة المقالة أعلاه باستخدام Visual Studio Code على قناتنا على YouTube.۔ يرجى التحقق من القناة على YouTube أيضًا.۔