Emmet: تدرجات CSS في سطر واحد

في الدرسين 11-12 أتقنت الآليات الأساسية لاختصارات CSS — استنتاج الوحدات، الوحدات الصريحة، القيم المتعددة، الألوان، بادئات المتصفح، والمطابقة التقريبية. لكن أكثر ميزات CSS3 تعقيدًا — التدرجات — لم تُغطَ بعد. التدرجات هي أكثر خصائص CSS3 تكرارًا: تدرج linear-gradient واحد يتطلب أربعة أسطر من كود التوافق عبر المتصفحات (-webkit- + -moz- + -o- + قياسي)، وتختلف صيغة معاملات كل سطر عبر ثلاث نسخ (webkit القديم، المواصفة الحالية، اقتراح W3C). يعلمك هذا الدرس مولد تدرجات CSS3 في Emmet — lg(...) يوسع أربعة أسطر توافق عبر المتصفحات تغطي ثلاث نسخ صياغة بضغطة واحدة، ثم يدمج جميع آليات الدرسين السابقين لبناء نمط زر كامل.

1. ما ستتعلمه


2. قصة حقيقية لمطور واجهة أمامية

(1) نقطة الألم: كود التدرجات عبر المتصفحات + أنماط الأزرار — تجربة مرهقة

تبني أليس زر "سجل الآن" في صفحة هبوط منتج SaaS. تريد خلفية بتدرج خطي من الأبيض إلى الرمادي الفاتح — بصريًا أكثر أناقة من اللون الصلب. تبحث في Google عن "linear-gradient cross-browser syntax"، تنسخ وتلصق النتيجة:

CSS
background: -webkit-linear-gradient(left, #fff 0%, #f0f0f0 100%);
background: -moz-linear-gradient(left, #fff 0%, #f0f0f0 100%);
background: -o-linear-gradient(left, #fff 0%, #f0f0f0 100%);
background: linear-gradient(to right, #fff 0%, #f0f0f0 100%);

أربعة أسطر من كود التوافق عبر المتصفحات، مع معاملات مختلفة قليلاً في كل سطر (webkit/moz/o تستخدم left، القياسي يستخد to right). تحتاج نسخ هذا 5 مرات (الزر الأساسي، الزر الثانوي، حالة التحويم، الحالة النشطة، حالة التعطيل)، مع تغيير قيم الألوان كل مرة. هذا 20 سطرًا من كود التدرج × 5 دورات نسخ-لصق = 100 سطر.

والأسوأ، يحتاج الزر أيضًا مجموعة كاملة من الأنماط: خلفية متدرجة (4 أسطر) + لون النص (سطر واحد) + حشوة (سطر واحد) + border-radius (سطر واحد) + إزالة زخرفة النص (سطر واحد) + font-size (سطر واحد) + font-weight (سطر واحد) + cursor (سطر واحد) = 11 سطرًا. تقضي أليس 15 دقيقة فقط على CSS الزر. تفكر: تدرجات CSS3 عنصر أساسي في التصميم الحديث — ألا يمكنني فقط كتابة بضعة أحرف، بضع قيم، والضغط Tab للحصول على 4 أسطر من كود التوافق عبر المتصفحات؟

(2) حل مولد التدرجات في Emmet

يوفر Emmet مولد تدرجات CSS3lg(...) (تدرج خطي) و rg(...) (تدرج شعاعي). تكتب "تعريف تدرج عادي" (اتجاه + نقاط توقف لونية) داخل الأقواس، ويوسعه Emmet تلقائيًا إلى 4 أسطر توافق عبر المتصفحات تغطي webkit/moz/o + قياسي عبر 3 نسخ صياغة.

اختصار زر التدرج لأليس:

CSS
lg(left,#fff,#f0f0f0)

سطر واحد يتوسع إلى 4 أسطر توافق عبر المتصفحات مع معالجة تلقائية لمواضع نقاط التوقف اللونية. هذا الاختصار الواحد يقلل كود التدرج لديها من 20 سطرًا إلى 1.

لنمط الزر الكامل، تكتب أليس جميع الخصائص السبع في سطر واحد:

TEXT 📖 للعرض فقط
bgc#2c3e50+c#fff+p10-20+bdrs4+tdn+fz16+fw700

47 حرفًا، 7 ضغطات Tab، 11 سطرًا من CSS زر كامل في 12 ثانية. ما كان يستغرق 15 دقيقة يستغرق الآن 12 ثانية — تحسين سرعة 75 ضعفًا.

(3) الفوائد

مولد تدرجات CSS3 المدمج مع اختصارات CSS هو السلاح النهائي لـ Emmet في التنسيق. الأول يلغي العمل المتكرر لـ "4 أسطر توافق عبر المتصفحات + 3 نسخ صياغة"، بينما الثاني يضغط أنماط مكونات واجهة المستخدم الشائعة (الأزرار، البطاقات، النماذج) في سطر واحد. بعد هذا الدرس، تنتقل تنسيقات أزرار أليس من 15 دقيقة إلى 12 ثانية، وكود تدرج التوافق عبر المتصفحات من 20 سطرًا إلى اختصار واحد. هذا الدرس هو أيضًا خاتمة المرحلة 4 — المرحلة 5 تنتقل إلى إجراءات المحرر، ممتدة Emmet من "كتابة الاختصارات" إلى "تسريع التحرير".


3. التعريف الأساسي لمولدات تدرجات CSS3

تدرجات CSS3 هي أحد المؤثرات البصرية المفضلة لدى المصممين، لكن صيغة التوافق عبر المتصفحات مرهقة بشكل لا يصدق — تدرج linear-gradient واحد يتطلب ثلاث نسخ ببادئات البائعين (webkit/moz/o)، كل منها تختلف صيغة معاملاتها عبر ثلاث نسخ (webkit القديم، المواصفة الحالية، اقتراح W3C).

يوفر Emmet كلمتين مفتاحيتين لمولد التدرجات — lg(...) و rg(...)تتوسعان تلقائيًا إلى 4 أسطر توافق عبر المتصفحات، تغطي جميع نسخ الصياغة الثلاث.

100%
graph TB
    A[اختصار تدرج lg] --> B[lg تدرج خطي]
    A --> C[rg تدرج شعاعي]

    B --> B1[lg اتجاه? + ألوان + نقاط توقف]
    B1 --> B2[الاتجاه اختياري: left/right/top/bottom]
    B1 --> B3[نقاط توقف لونية: #fff, #ccc 50%, #000]

    C --> C1[rg + ألوان + نقاط توقف]
    C1 --> C2[افتراضي من المركز للخارج]

    D[التوسيع: 4 أسطر توافق عبر المتصفحات] --> D1[-webkit-linear-gradient]
    D --> D2[-moz-linear-gradient]
    D --> D3[-o-linear-gradient]
    D --> D4[linear-gradient نسخة to]

    B -.-> D
    C -.-> D

    style A fill:#3b82f6,color:#fff
    style B fill:#10b981,color:#fff
    style C fill:#8b5cf6,color:#fff
    style D fill:#ef4444,color:#fff
    style D1 fill:#fef3c7
    style D2 fill:#fef3c7
    style D3 fill:#fef3c7
    style D4 fill:#fef3c7

نصيحة: اختصارات التدرجات في Emmet تستخدم كقيم لخصائص CSS — عادة داخل اختصارات background أو background-image (مثال: bg:lg(...)، bgc:lg(...)) ، أو تكتب مستقلة في سياق اختصار (مثال: سطر يحتوي فقط lg(...)). عند استخدامها كقيمة خاصية، يرث Emmet بذكاء اسم خاصية السطر الحالي (انظر اختصار الحرف bg+ للتفاصيل).


4. التدرج الخطي lg(...): الاتجاه + نقاط التوقف اللونية

lg(...) هو اختصار لـ linear-gradient(...)، بهيكل المعاملات lg(اتجاه?، نقاط توقف لونية...).

(1) التدرج الخطي الأساسي: الاتجاه الافتراضي

عند حذف معامل الاتجاه، يفترض Emmet التدرج من الأعلى إلى الأسفل.

الاختصار محتوى التوسيع الرئيسي الوصف
lg(#fff,#000) -webkit-linear-gradient(top, #fff, #000);
-moz-linear-gradient(top, #fff, #000);
-o-linear-gradient(top, #fff, #000);
linear-gradient(to bottom, #fff, #000);
من الأعلى للأسفل (افتراضي)
lg(#fc0,red) نفس الهيكل، الألوان #ffcc00 و red أي ألوان
lg(#fff,#ccc,#000) تدرج ثلاثي الألوان موزعة بالتساوي افتراضيًا

(2) معامل اتجاه التدرج

معامل الاتجاه هو أول معامل اختياري لـ lg(...)، يستخدم كلمات CSS المفتاحية (left، right، top، bottom).

الاختصار محتوى التوسيع الرئيسي الاتجاه
lg(left,#fff,#000) -webkit-linear-gradient(left, #fff, #000);
...
linear-gradient(to right, #fff, #000);
من اليسار لليمين
lg(right,#fff,#000) -webkit-linear-gradient(right, #fff, #000);
...
linear-gradient(to left, #fff, #000);
من اليمين لليسار
lg(top,#fff,#000) -webkit-linear-gradient(top, #fff, #000);
...
linear-gradient(to bottom, #fff, #000);
من الأعلى للأسفل
lg(bottom,#fff,#000) -webkit-linear-gradient(bottom, #fff, #000);
...
linear-gradient(to top, #fff, #000);
من الأسفل للأعلى

نقطة أساسية: النسخ القديمة webkit/moz/o تستخدم اتجاه البداية (left = يبدأ من اليسار)، بينما النسخة القياسية تستخدم اتجاه النهاية (to right = ينتهي عند اليمين = من اليسار لليمين). يتعامل Emmet تلقائيًا مع هذا التحويل ثنائي الاتجاه — تكتب فقط اتجاه البداية (left)، ويضيف Emmet بادئة to مع الاتجاه المعكوس للنسخة القياسية.

(3) نقاط توقف متعددة الألوان مع معاملات الموضع

يمكن لكل نقطة توقف لونية تضمين معامل موضع (0% إلى 100%) يتحكم في مكان تواجد اللون في التدرج.

الاختصار محتوى التوسيع الرئيسي الوصف
lg(#fff,#000) موزعة بالتساوي (افتراضي 0% و 100%) أساسي بلونين
lg(#fff,#ccc 50%,#000) -webkit-linear-gradient(top, #fff 0%, #ccc 50%, #000 100%);
...
linear-gradient(to bottom, #fff 0%, #ccc 50%, #000 100%);
3 ألوان + الأوسط عند 50%
lg(left,#fc0 30%,red) ... linear-gradient(to right, #fc0 30%, red 100%); يتحول للبرتقالي عند 30%
lg(#fff 0%,#ccc 25%,#000 75%) ثلاثة ألوان، مواضع مخصصة تحكم كامل بالموضع

نصيحة: معاملات موضع نقاط التوقف اللونية اختيارية — عند حذفها، يوزعها المتصفح بالتساوي. لكن التحكم الدقيق (مثل "تغير مفاجئ في اللون عند 30%") يتطلب مواضع صريحة. استخدم مسافة (وليس شرطة) بين اللون وموضعه، لأن الشرطات تفسر كفواصل قيم بواسطة Emmet.


5. التدرج الشعاعي rg(...): من المركز للخارج

rg(...) هو اختصار لـ radial-gradient(...)، بهيكل مشابه لـ lg(...) لكن يفترض من المركز للخارج (شعاعي).

(1) التدرج الشعاعي الأساسي

الاختصار محتوى التوسيع الرئيسي الوصف
rg(#fff,#000) -webkit-radial-gradient(center, #fff, #000);
-moz-radial-gradient(center, #fff, #000);
-o-radial-gradient(center, #fff, #000);
radial-gradient(circle at center, #fff, #000);
من المركز للخارج
rg(#fc0,#f00) نفس الهيكل، برتقالي إلى أحمر تأثير إضاءة شعاعي

(2) شكل وموضع التدرج الشعاعي

التدرجات الشعاعية تدعم معاملات شكل أكثر تعقيدًا (circle، ellipse) ومعاملات موضع (top left، center).

الاختصار محتوى التوسيع الرئيسي الوصف
rg(circle,#fff,#000) شعاعي دائري الشكل الافتراضي
rg(ellipse,#fff,#000) شعاعي بيضاوي شكل بيضاوي
rg(circle at top left,#fff,#000) دائرة عند الزاوية العليا اليسرى موضع مخصص

تحذير: معاملات التدرج الشعاعي المعقدة (circle، ellipse، at) قد يكون لها اختلافات طفيفة في الدعم عبر نسخ Emmet. التدرجات الشعاعية الأساسية بلونين (rg(#fff,#000)) لديها أفضل توافق؛ اختبر المعاملات المعقدة في محررك أولاً.


6. أمثلة تطبيقية

تغطي الأمثلة الخمسة التالية السيناريوهات الأساسية لمولدات التدرجات المدمجة مع اختصارات CSS.

▶ مثال: تدرج خطي أساسي lg(#fff,#000) (الصعوبة ⭐)

التدرج الأكثر شيوعًا — أبيض إلى أسود، من الأعلى للأسفل، 4 أسطر توافق عبر المتصفحات تغطي 3 نسخ صياغة.

الاختصار:

CSS
lg(#fff,#000)

التوسيع:

CSS
background: -webkit-linear-gradient(top, #fff 0%, #000 100%);
background: -moz-linear-gradient(top, #fff 0%, #000 100%);
background: -o-linear-gradient(top, #fff 0%, #000 100%);
background: linear-gradient(to bottom, #fff 0%, #000 100%);

الناتج:

TEXT 📖 للعرض فقط
الشرح: في `lg(#fff,#000)`، `lg` هي الكلمة المفتاحية المختصرة لـ `linear-gradient`، و `#fff` و `#000` هما نقطتا توقف لونيتان (يعين Emmet تلقائيًا موضعي 0% و 100%). يتوسع Emmet إلى 4 أسطر توافق عبر المتصفحات: ① `-webkit-linear-gradient` (Chrome/Safari القديم)؛ ② `-moz-linear-gradient` (Firefox القديم)؛ ③ `-o-linear-gradient` (Opera القديم، مهمل)؛ ④ `linear-gradient` القياسي (نسخة اقتراح W3C، تستخدم `to bottom` بدلاً من `top`). هذه الأسطر الأربعة تغطي صيغة التدرج لجميع المتصفحات من 2010–2026. ملاحظة: يفترض Emmet اختصار `lg(...)` كقيمة لخاصية `background` (ويدعم أيضًا `background-image`).

▶ مثال: اتجاه التدرج lg(left,#fff,#000) (الصعوبة ⭐⭐)

تدرج أفقي — من اليسار لليمين، للتحقق من التحويل ثنائي الاتجاه لمعامل الاتجاه.

الاختصار:

CSS
lg(left,#fff,#000)

التوسيع:

CSS
background: -webkit-linear-gradient(left, #fff 0%, #000 100%);
background: -moz-linear-gradient(left, #fff 0%, #000 100%);
background: -o-linear-gradient(left, #fff 0%, #000 100%);
background: linear-gradient(to right, #fff 0%, #000 100%);

الناتج:

TEXT 📖 للعرض فقط
الشرح: `left` هو معامل الاتجاه — في webkit/moz/o القديم يعني "يبدأ من اليسار" (يتقدم التدرج من اليسار لليمين)؛ في النسخة القياسية يجب تحويله إلى `to right` (ينتهي عند اليمين = من اليسار لليمين). يتعامل Emmet تلقائيًا مع هذا **التحويل الدلالي بين البداية والنهاية** — تكتب فقط اتجاه البداية (`left`، `right`، `top`، `bottom`)، ويضيف Emmet بادئة `to` ويعكس الاتجاه للنسخة القياسية. هذا التصميم يوفر عليك الاهتمام باختلافات النسخ. بعد التوسيع، يعرض المتصفح خلفية تدرج أفقي من الأبيض على اليسار إلى الأسود على اليمين.

▶ مثال: نقاط توقف متعددة الألوان lg(#fff,#ccc 50%,#000) (الصعوبة ⭐⭐)

تدرج ثلاثي الألوان مع موضع مخصص للون الأوسط — تحكم دقيق في نقطة انتقال اللون.

الاختصار:

CSS
lg(#fff,#ccc 50%,#000)

التوسيع:

CSS
background: -webkit-linear-gradient(top, #fff 0%, #ccc 50%, #000 100%);
background: -moz-linear-gradient(top, #fff 0%, #ccc 50%, #000 100%);
background: -o-linear-gradient(top, #fff 0%, #ccc 50%, #000 100%);
background: linear-gradient(to bottom, #fff 0%, #ccc 50%, #000 100%);

الناتج:

TEXT 📖 للعرض فقط
الشرح: في التدرج ثلاثي الألوان `#fff,#ccc 50%,#000`، `#fff` هو لون البداية (تلقائي 0%)، `#ccc 50%` هو اللون الأوسط (**موضوع صراحة عند 50%**)، و `#000` هو لون النهاية (تلقائي 100%). `50%` بعد `#ccc` هو **معامل الموضع** — يتحكم في مكان تواجد `#ccc` في التدرج. معامل الموضع واللون مفصولان بـ **مسافة** (وليس `-`)، لأن `-` هو بالفعل فاصل قيم في اختصارات CSS في Emmet. بعد التوسيع، يعرض المتصفح تدرجًا ثلاثي القطاعات: أبيض نقي عند 0% بالأعلى، رمادي فاتح عند 50% بالمنتصف، أسود نقي عند 100% بالأسفل. مواضع نقاط التوقف اللونية هي الأداة الأساسيةللمصممين لضبط تأثيرات التدرج بدقة — مثلاً، "تغير لوني مفاجئ في المنتصف عند الضغط على الزر" يتطلب مواضع صريحة.

▶ مثال: تدرج شعاعي rg(#fff,#000) (الصعوبة ⭐)

تدرج شعاعي — تدرج دائري من المركز للخارج، مثالي لتأثيرات الإضاءة والتظليل.

الاختصار:

CSS
rg(#fff,#000)

التوسيع:

CSS
background: -webkit-radial-gradient(center, #fff 0%, #000 100%);
background: -moz-radial-gradient(center, #fff 0%, #000 100%);
background: -o-radial-gradient(center, #fff 0%, #000 100%);
background: radial-gradient(circle at center, #fff 0%, #000 100%);

الناتج:

TEXT 📖 للعرض فقط
الشرح: `rg(...)` هي الكلمة المفتاحية المختصرة لـ `radial-gradient(...)`، بهيكل مشابه لـ `lg(...)` لكن **يفترض التدرج من المركز للخارج**. `#fff` و `#000` هما نقطتا توقف لونيتان. يتوسع Emmet إلى 4 أسطر توافق عبر المتصفحات: ① `-webkit-radial-gradient(center, ...)` (webkit القديم)؛ ② `-moz-radial-gradient`؛ ③ `-o-radial-gradient`؛ ④ `radial-gradient(circle at center, ...)` القياسي (يستخدم `circle at center` للإشارة إلى شعاعي دائري عند المركز). التدرجات الشعاعية تستخدم عادة لتأثيرات الإضاءة والتظليل واستبدال الظلال — مثل "بقعة ضوء" عند تحويم البطاقة أو حد "تظليل" على الصور.

▶ مثال: تطبيق عملي لنمط زر كامل (الصعوبة ⭐⭐)

تمرين تطبيقي شامل — دمج جميع آليات اختصارات CSS من الدروس 11–13 (استنتاج الوحدات، الألوان، !، المطابقة التقريبية) لكتابة نمط زر كامل.

الاختصار:

CSS
bgc#2c3e50+c#fff+p10-20+bdrs4+tdn+fz16+fw700

التوسيع:

CSS
background-color: #2c3e50;
color: #ffffff;
padding: 10px 20px;
border-radius: 4px;
text-decoration: none;
font-size: 16px;
font-weight: 700;

الناتج:

TEXT 📖 للعرض فقط
الشرح: 7 اختصارات مستقلة مكتوبة في سطر واحد، تغطي النمط الكامل للزر — `bgc#2c3e50` لخلفية زرقاء-رمادية داكنة (`#2c3e50` هو سداسي 6 أرقام محفوظ كما هو)؛ `c#fff` لنص أبيض (`#fff` يتوسع تلقائيًا إلى `#ffffff`)؛ `p10-20` لحشوة 10px أعلى/أسفل و 20px يسار/يمين؛ `bdrs4` لـ border-radius 4px؛ `tdn` مطابقة تقريبية لـ `text-decoration: none` (يزيل التسطير)؛ `fz16` لـ font-size 16px (`fz` هو اختصار font-size)؛ `fw700` لـ font-weight 700 (`fw` هو اختصار font-weight، 700 يعني غامق). الاختصار بالكامل 47 حرفًا، يتوسع إلى 7 أسطر CSS كاملة. من كتابة يدوية 7 أسطر × ~18 حرف متوسط = 126 حرفًا + 7 ضغطات Tab + 7 فحوصات فواصل منقوطة، إلى 47 حرفًا في سطر واحد. اختصارات CSS في Emmet تقلل عدد ضغطات المفاتيح بنسبة 60%، ومع اختصار التدرج بـ 4 أسطر توافق عبر المتصفحات، تتحسن الكفاءة الإجمالية 70–80 ضعفًا.

7. مثال كامل: زر متدرج + تأثير التحويم

ادمج مولد التدرجات واختصارات CSS والمطابقة التقريبية — "زر متدرج + تأثير تحويم" كامل.

▶ مثال: نمط زر متدرج كامل (الصعوبة ⭐⭐⭐)

الاختصار:

CSS
.bg:lg(left,#fff,#f0f0f0) c#333 p10-20 bdrs4 tdn fz16 fw700 curp

التوسيع:

CSS
background: -webkit-linear-gradient(left, #fff 0%, #f0f0f0 100%);
background: -moz-linear-gradient(left, #fff 0%, #f0f0f0 100%);
background: -o-linear-gradient(left, #fff 0%, #f0f0f0 100%);
background: linear-gradient(to right, #fff 0%, #f0f0f0 100%);
color: #333333;
padding: 10px 20px;
border-radius: 4px;
text-decoration: none;
font-size: 16px;
font-weight: 700;
cursor: pointer;

الناتج:

TEXT 📖 للعرض فقط
الشرح: هذا المثال هو الختام الكبير للمرحلة 4 — يستدعي في آن واحد مولد التدرجات (`lg(left,#fff,#f0f0f0)` يتوسع إلى 4 أسطر توافق عبر المتصفحات)، استنتاج الوحدات (`p10-20` يضيف px تلقائيًا، `bdrs4` يضيف px تلقائيًا)، توسيع الألوان التلقائي (`c#333` 3 أرقام ← 6 أرقام)، المطابقة التقريبية (`tdn` ← text-decoration: none)، واختصارات الخصائص بحرف واحد (`fz` لـ font-size، `fw` لـ font-weight، `curp` لـ cursor: pointer). اختصار واحد بـ 60 حرفًا يتوسع إلى 11 سطر CSS كامل (4 أسطر تدرج + 7 أسطر أنماط أساسية). هذا "الزر المتدرج" هو أكثر مكونات واجهة المستخدم شيوعًا في صفحات هبوط SaaS ومواقع المنتجات — ضغط أنماطه في اختصار Emmet واحد هو شكل Emmet النهائي في عالم CSS. الاختصار بالكامل يقلل الكتابة اليدوية من 11 سطرًا × ~22 حرف متوسط = 242 حرفًا + 11 ضغطة Tab + 11 فحص فاصلة منقوطة إلى 60 حرفًا في سطر واحد. مع آلية بادئات المتصفح من الدرس 12 (`-bdrs4`)، يمكنك إضافة سطري webkit/moz border-radius إضافيين — لكن المتصفحات الحديثة جميعها تدعم `border-radius` أصلاً، لذا عادة تحذف عمليًا.

❓ أسئلة شائعة

س هل lg(...) يتوسع فقط إلى 4 أسطر توافق عبر المتصفحات؟ هل يمكنني تقليله إلى 2؟
ج الافتراضي هو 4 أسطر. لا يوفر Emmet مفتاح تبديل "للإخراج القياسي فقط" — هذا مقصود، لضمان عمل تدرجات CSS3 على جميع المتصفحات، بما فيها القديمة. إذا كنت تهتم فقط بالمتصفحات الحديثة (Chrome 26+، Firefox 16+، Safari 6.1+، Edge)، يمكنك حذف أسطر webkit/moz/o يدويًا والاحتفاظ فقط بالنسخة القياسية. لكن تحقق من توزيع متصفحات جمهورك المستهدف قبل الحذف.
س ما اتجاه التدرج الافتراضي لـ lg(...)؟ هل يمكن حذف الاتجاه؟
ج الافتراضي هو top (من الأعلى للأسفل). lg(#fff,#000) بدون اتجاه يتوسع إلى linear-gradient(top, ...) (قديم) أو linear-gradient(to bottom, ...) (قياسي) — كلاهما من الأعلى للأسفل. للاتجاهات الأخرى، يجب كتابتها صراحة: lg(left,...)، lg(right,...)، lg(bottom,...).
س ماذا يعني اختصار الحرف bg+؟ كيف يختلف عن bgc؟
ج bg+ هو اختصار توسيع الخلفية في Emmet — + تعني "مع قيمة نائبة افتراضية"، تتوسع إلى اختصار background مع عنصر نائب url() (مناسب لسيناريوهات خلفيات الصور). bgc هو فقط background-color، يتعامل مع لون الخلفية فقط. bg+ و bgi (background-image) أكثر استخدامًا مع تدرجات lg(...): bgi:lg(left,#fff,#000) يتوسع إلى صورة خلفية متدرجة كاملة. عمليًا، يوصى باستخدام bg + lg(...).
س هل يمكنني استخدام transparent في اختصارات التدرجات؟
ج نعم، لكن تحتاج السلسلة الكاملة: lg(#fff,transparent,#000) يتوسع إلى تدرج ثلاثي الألوان يبدأ بـ #fff، شفاف في المنتصف، ينتهي بـ #000. transparent هي كلمة CSS مفتاحية قياسية — يخرجها Emmet كما هي. إذا أردت شفافية rgba، يمكنك استخدام دالة rgba(): lg(rgba(255,255,255,0),#000)، لكن دعم Emmet لاستدعاءات الدوال داخل rgba() محدود. يوصى باستخدام الألوان السداسية (مثال: #fff0) أو #fff00 (لون 4 أرقام، آخر رقمين هما ألفا).

📖 ملخص


📝 تمارين

  1. أساسي (الصعوبة ⭐): في ملف .css، أدخل ثلاثة اختصارات تدرج: lg(#fff,#000)، lg(#fc0,red)، و rg(#fff,#000). اضغط Tab وسجل نتائج التوسيع (كل منها يجب أن يتوسع إلى 4 أسطر توافق عبر المتصفحات). احسب إجمالي الأسطر الموسعة وتحقق من أن كل سطر لديه بادئة المتصفح الصحيحة (webkit/moz/o + قياسي).

  2. متوسط (الصعوبة ⭐⭐): اكتب نمط زر بخلفية متدرجة باستخدام سطر اختصار Emmet واحد (8 خصائص على الأقل). المتطلبات: (أ) خلفية متدرجة باستخدام bg:lg(left,#fff,#f0f0f0) أو bgi:lg(top,#3b82f6,#1e40af) (تدرج أزرق)؛ (ب) نص أبيض c#fff؛ (ج) حشوة 10-20؛ (د) border-radius 6px؛ (هـ) text-decoration: none؛ (و) font-size 16px؛ (ز) font-weight 600؛ (ح) cursor pointer curp (curp هو اختصار cursor: pointer). تحقق من التوسيع واشرح لماذا الخصائص الثمانية مفصولة بـ مسافات (وليس بشرطات).

  3. متقدم (الصعوبة ⭐⭐⭐): اكتب نمط CSS كامل "لبطاقة + تدرج + انتقال تحويم" (10 خصائص على الأقل). المتطلبات: (أ) خلفية متدرجة (bg:lg 4 أسطر توافق عبر المتصفحات)؛ (ب) border-radius 8px؛ (ج) ظل (bxs مطابقة تقريبية)؛ (د) حشوة 16-20؛ (هـ) نص رمادي داكن؛ (و) font-size 14px؛ (ز) transition باستخدام اختصار بحرف واحد (trs أو -trs)؛ (ح) cursor: pointer؛ (ط) خاصية واحدة على الأقل تستخدم المطابقة التقريبية؛ (ي) خاصية واحدة على الأقل تنتهي بـ !important. اكتب كل شيء في سطر اختصار Emmet واحد، سجل نتيجة التوسيع (متوقع 15-20 سطر CSS)، واكتب تقرير مقارنة سرعة: "تدرج + اختصارات CSS تطبيق عملي" مقابل كتابة CSS يدويًا.

Web-Tutorial.com

فريق Web-Tutorial التقني

منصة دروس برمجية يديرها عدة مطورين. كل درس يتم كتابته ومراجعته بواسطة مطورين متخصصين في المجال. نعمل على ضمان دقة وموثوقية المحتوى — إذا لاحظت أي مشكلة، فيرجى إخبارنا.

100%