الدالة repeating-radial-gradient()‎

من موسوعة حسوب
< CSS
مراجعة 15:38، 28 يناير 2018 بواسطة عبد اللطيف ايمش (نقاش | مساهمات) (استبدال النص - '\[\[تصنيف:(.*)\]\]' ب'{{SUBPAGENAME}}')
(فرق) → مراجعة أقدم | المراجعة الحالية (فرق) | مراجعة أحدث ← (فرق)

الدالة repeating-radial-gradient()‎ في CSS  تُنشِئ صورةً تحتوي على تدرجات لونية مكررة على شكل أشعة تبدأ من المبدأ، وهي شبيهة بالدالة radial-gradient()‎ وتأخذ نفس الوسائط، لكنها تُكرِّر محطات التوقف اللوني في جميع الجهات إلى ما لا نهاية، والنتيجة هي كائن من نوع البيانات <gradient> الذي هو نوعٌ خاصٌ من <image>.

/* تدرج لوني مُكرَّر يبدأ من مركز العنصر
   يبدأ باللون الأحمر ثم يتحول إلى أزرق ثم ينتهي بالأخضر */
repeating-radial-gradient(circle at center, red 0, blue, green 30px);

لا تملك التدرجات اللونية في CSS أبعادًا فعليةً، أي ليس لها قياس مُحدَّد ولا نسبة أبعاد، وستُعرَض حسب أبعاد العنصر المحتواة فيه.

عند كل تكرر، ستتحرك مواضع التوقف اللوني بأضعاف طول التدرج اللوني الأساسي (أي المسافة بين أوّل وآخر محطة توقف لوني)، وبالتالي سيكون موضع آخر محطة توقف لوني متوافقة مع أوّل محطة توقف لوني، وإذا كان لون البداية ولون النهاية مختلفَين، فسينتج انتقال غير تدريجي (حاد) بين اللونين.

لمّا كانت التدرجات اللونية تنتمي إلى نوع البيانات <image>، فيمكن استخدامها حيث يمكن استخدام نوع البيانات <image>، ولهذا السبب لا يمكن استخدام الدالة repeating-radial-gradient()‎ مع الخاصية background-color وغيرها من الخاصيات التي تستعمل نوع البيانات <color>.

أمثلة

مثال عن تدرج لوني شعاعي يكرر اللونين الأبيض والأسود:

body {
  background: repeating-radial-gradient(black, black 5px, white 5px, white 10px);
}

مثالٌ آخر يكون الشكل النهائي للتدرج اللوني هو قطع ناقص:

body {
  background: repeating-radial-gradient(ellipse farthest-corner,
      red, black 5%, blue 5%, green 10%);
}

دعم المتصفحات

الميزة Chrome Firefox Internet Explorer Opera Safari
الدعم الأساسي 10.0 (مع السابقة -webkit-)

26.0

3.6 (مع السابقة -moz-)

16.0

10.0 12.1 5.1 (مع السابقة -webkit-)

6.0

البنية العامة

القيمة <position>

موضع التدرج اللوني، وتُحدَّد هذه القيمة كما في الخاصية background-position أو transform-origin، وإذا لم تُحدَّد فالقيمة الافتراضية هي center.

القيمة <shape>

الشكل النهائي للتدرج الوني، ويمكن أن تكون مساويةً إلى circle (وهذا يعني أنَّ شكل التدرج النهائي هو دائرة نصف قطرها ثابت)، أو ellipse (وهذا يعني أنَّ الشكل النهائي هو قطع ناقص)، وإذا لم تُحدَّد فالقيمة الافتراضية هي ellipse.

القيمة <extent-keyword>

هذه الكلمة المحجوزة تصف حجم الشكل النهائي للتدرج اللوني، ويُسمَح باستخدام الكلمات المحجوزة الآتية:

الكلمة المحجوزة الشرح
closest-side يجب أن يلمس الشكل النهائي للتدرج اللوني الجانب الأقرب للمركز (للدوائر) أو كلا الجانبين الرأسي والأفقي الأقرب للمركز (للقطوع الناقصة).
closest-corner يجب أن يلمس الشكل النهائي للتدرج اللوني أقرب ركن من المركز.
farthest-side يجب أن يلمس الشكل النهائي للتدرج اللوني الجانب الأبعد للمركز (للدوائر) أو كلا الجانبين الرأسي والأفقي الأبعد للمركز (للقطوع الناقصة).
farthest-side يجب أن يلمس الشكل النهائي للتدرج اللوني أبعد ركن من المركز.

ملاحظة: في الإصدارات القديمة من هذه الدالة كانت هنالك كلمات محجوزة مثل cover و contain التي تكافئ الكلمات المحجوزة المعيارية farthest-corner و closest-side على التوالي وبالترتيب، لكن لا تستعمل إلا الكلمات المعيارية، وإنما ذكرناها لتعرف بوجودها.

القيمة <color-stop>

قيمة لونيّة <color> يتبعها -اختياريًا- موضع التوقف، ويمكن أن يكون الموضع نسبةً مئويةً <percentage> أو طولًا مطلقًا <length>.

البنية الرسمية

repeating-radial-gradient(
  [ [ circle || <length> ][ at <position> ]? , |
    [ ellipse || [ <length> | <percentage> ]{2} ] [ at <position> ]? , |
    [ [ circle | ellipse ] || <extent-keyword> ] [ at <position> ]? , |
    at <position> ,
  ]?
  <color-stop> [ , <color-stop> ]+)

حيث:

<extent-keyword> = closest-corner | closest-side | farthest-corner | farthest-side
<color-stop> = <color> [ <percentage> | <length> ]?

مصادر ومواصفات