إذا كنت شخصًا يتعمق أكثر في عالم تطوير الواجهة الأمامية، فمن المحتمل أنك صادفت Sass (أوراق أنماط رائعة نحويًا). Sass هو معالج مسبق قوي لـ CSS يعمل على تحسين سير عمل CSS الخاص بك من خلال توفير ميزات مثل المتغيرات والتداخل والوظائف والخلطات. ومن بين هذه الميزات، تبرز الخلطات باعتبارها مُغيرة لقواعد اللعبة، مما يسمح لك بإعادة استخدام التعليمات البرمجية بكفاءة والحفاظ على الاتساق عبر أوراق الأنماط الخاصة بك.
A mixin في Sass عبارة عن كتلة قابلة لإعادة الاستخدام من الأنماط التي يمكن تعريفها مرة واحدة وتضمينها أينما تريد. وهذا يلغي الحاجة إلى إعادة كتابة التعليمات البرمجية المتكررة، ويقلل التكرار، ويجعل صيانة ورقة الأنماط الخاصة بك أسهل. بالإضافة إلى ذلك، يمكن أن تقبل الخلطات المعلمات، مما يجعلها أكثر قوة للتصميم الديناميكي.
إليك مثال سريع لمزيج بسيط:
@mixin border-radius($radius) { -webkit-border-radius: $radius; -moz-border-radius: $radius; border-radius: $radius; }
الآن، في أي وقت تحتاج فيه إلى تطبيق نصف قطر الحدود، يمكنك ببساطة تضمين هذا المزيج:
.button { @include border-radius(10px); }
عند إنشاء مشاريع معقدة، يمكن أن يصبح CSS الخاص بك مزدحمًا ومتكررًا. تأتي Mixins للإنقاذ من خلال تمكين إعادة استخدام الكود و التصميم البارامتري . فيما يلي بعض الفوائد الأساسية لاستخدام الخلطات:
إليك مثال على مزيج لظل مربع:
@mixin box-shadow($x, $y, $blur, $color) { -webkit-box-shadow: $x $y $blur $color; -moz-box-shadow: $x $y $blur $color; box-shadow: $x $y $blur $color; }
يأخذ هذا المزيج أربعة معلمات: الإزاحات الأفقية والرأسية، ونصف قطر التمويه، ولون الظل. الآن، دعونا نستخدمها في فئة CSS:
.card { @include box-shadow(2px, 4px, 8px, rgba(0, 0, 0, 0.3)); }
سيؤدي هذا إلى إنشاء ملف CSS التالي:
.card { -webkit-box-shadow: 2px 4px 8px rgba(0, 0, 0, 0.3); -moz-box-shadow: 2px 4px 8px rgba(0, 0, 0, 0.3); box-shadow: 2px 4px 8px rgba(0, 0, 0, 0.3); }
في بعض الأحيان، قد ترغب في إعطاء المعلمات الخاصة بك القيم الافتراضية. بهذه الطريقة، يمكنك استخدام mixin دون تمرير كل وسيطة دائمًا.
@mixin transition($property: all, $duration: 0.3s, $timing-function: ease) { transition: $property $duration $timing-function; }
يمكنك الآن الاتصال بالمزيج مثل هذا:
.button { @include transition; }
سينتج عن ذلك:
.button { transition: all 0.3s ease; }
وإذا كنت تريد تجاوز القيم الافتراضية:
.link { @include transition(opacity, 0.5s, linear); }
تتميز المزيجات بالمرونة الكافية بحيث يمكنك دمج الخلطات داخل الخلطات الأخرى لجعل التعليمات البرمجية الخاصة بك أكثر نمطية.
@mixin flex-center { display: flex; justify-content: center; align-items: center; } @mixin button-styles($bg-color) { background-color: $bg-color; padding: 10px 20px; border: none; color: white; cursor: pointer; @include flex-center; }
الآن يمكنك تطبيق مزيج أنماط الأزرار على أزرار متعددة:
.primary-button { @include button-styles(blue); } .secondary-button { @include button-styles(green); }
يمكن أن تحتوي المزيجات أيضًا على منطق شرطي باستخدام التوجيه @if، مما يجعلها أكثر تنوعًا.
@mixin responsive-font-size($size) { @if $size == small { font-size: 12px; } @else if $size == medium { font-size: 16px; } @else if $size == large { font-size: 20px; } @else { font-size: 14px; // default size } }
يمكنك الآن تطبيق أحجام الخطوط المختلفة ديناميكيًا:
.text-small { @include responsive-font-size(small); } .text-large { @include responsive-font-size(large); }
يوفر Sass أيضًا وظائف ، والتي، مثل mixins، تسمح لك بتغليف المنطق. لذا، متى يجب عليك استخدام mixin مقابل وظيفة؟
@function darken-color($color, $percentage) { @return darken($color, $percentage); }يمكنك تسميتها بهذا الشكل:
@function darken-color($color, $percentage) { @return darken($color, $percentage); }حالات الاستخدام في العالم الحقيقي لـ Mixins
لذا، في المرة القادمة عندما تجد نفسك تكتب CSS متكررًا، فكر في تحويله إلى مزيج. سوف تشكرك نفسك المستقبلية (وزملائك في الفريق) على ذلك!
لمزيد من المعلومات قم بزيارة الوثائق.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3