الفرق بين المراجعتين لصفحة: «Sass/selector unify»

من موسوعة حسوب
أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: الدالة <code>()selector_unify</code> في Sass}}</noinclude> تعيد الدالة <code>selector_unify()‎</code> نسخة جديدة...'
 
لا ملخص تعديل
سطر 1: سطر 1:
<noinclude>{{DISPLAYTITLE: الدالة <code>()selector_unify</code> في Sass}}</noinclude>
<noinclude>{{DISPLAYTITLE: الدالة <code>()selector_unify</code> في Sass}}</noinclude>
تعيد الدالة <code>selector_unify()‎</code> نسخة جديدةً من المحدد <code>‎$selector</code> مع توسعة <code>‎$extendee</code> بواسطة <code>‎$extender</code>. النتيجة تشبه الكود البرمجي التالي:<syntaxhighlight lang="sass">
توحد الدالة <code>selector_unify()‎</code> اثنين من المحددات في محدد واحد يطابق فقط العناصر المتطابقة في كلا المُحدّدين. تعيد الدالة القيمة المعدومة <code>null</code> إن لم يكن هناك محدد من هذا القبيل.
$selector { ... }
 
$extender { @extend $extendee }
كما هو الحال مع توحيد المحددات الذي تُنجزه <code>‎$extend</code>، فإن هذا لا يضمن أن المحدد الناتج سيُطابق جميع العناصر المتطابقة مع المُحدّدين المُدخلين. على سبيل المثال، إذا وُحِّد ‎<code>.a .b</code> مع <code>.x .y</code>، فستعيد الدالة المحدّد <code>‎.a .x .b.y, .x .a .b.y</code>، ولن يٌعاد ‎.a.x .b.y لن. هذا يُجنِّب النتاتج الكبيرة مع مُطابقة جميع العناصر التي يُحتمل أن تكون موجودةً.
</syntaxhighlight>


== البنية العامة ==
== البنية العامة ==
<syntaxhighlight lang="sass">
<syntaxhighlight lang="sass">
selector_unify($selector, $extendee, $extender)
selector_unify($selector1, $selector2)
</syntaxhighlight>
</syntaxhighlight>


== المعاملات ==
== المعاملات ==


=== <code>‎$selector</code> ===
=== <code>‎$selector1</code> ===
المحدد الذي سيُوسع داخلَه المحدد <code>‎$extendee</code> بواسطة <code>‎$extender</code>. يمكن أن يكون عبارةً عن سلسلة نصية أو قائمة من السلاسل النصية أو قائمة من قوائم السلاسل النصية كما تُعاد من قبل <code>&</code>.
المُحدّد الأول الذي سيُوحّد. يمكن أن يكون عبارةً عن سلسلة نصية أو قائمة من السلاسل النصية أو قائمة من قوائم السلاسل النصية كما تُعاد من قبل <code>&</code>.


=== <code>‎$extendee</code> ===
=== <code>‎$selector2</code> ===
المحدد الذي سيُوسع. يمكن أن يكون عبارةً عن سلسلة نصية أو قائمة من السلاسل النصية أو قائمة من قوائم السلاسل النصية كما تُعاد من قبل <code>&</code>.
المُحدّد الثاني الذي سيُوحّد. يمكن أن يكون عبارةً عن سلسلة نصية أو قائمة من السلاسل النصية أو قائمة من قوائم السلاسل النصية كما تُعاد من قبل <code>&</code>.
 
=== <code>‎$selector</code> ===
المحدد الذي سيُسلَك داخلَ المحدد <code>‎$selector</code>.  يمكن أن يكون عبارةً عن سلسلة نصية أو قائمة من السلاسل النصية أو قائمة من قوائم السلاسل النصية كما تُعاد من قبل <code>&</code>.


== القيم المعادة ==
== القيم المعادة ==
قائمة من قوائم السلاسل النصية التي تمثل نتيجة التوسعة. وتكون بنفس التنسيق الذي يكون لمحدّد تُعيده <code>&</code>.
قائمة من قوائم السلاسل النصية التي تمثل نتيجة التوحيد، أو القيمة المعدومة <code>null</code> في حالة عدم حدوث التوحيد. وتكون بنفس التنسيق الذي يكون لمحدّد تُعيده <code>&</code>.
 
== الأخطاء والاستثناءات ==
سيُرمى الخطأ <code>ArgumentError</code> إن فشلت التوسعة.


== مثال ==
== مثال ==
مثال عن استخدام الدالة <code>selector_unify()‎</code>:<syntaxhighlight>
مثال عن استخدام الدالة <code>selector_unify()‎</code>:<syntaxhighlight>
selector-extend(".a .b", ".b", ".foo .bar") => .a .b, .a .foo .bar, .foo .a .bar
selector-unify(".a", ".b") => .a.b
 
selector-unify(".a .b", ".x .y") => .a .x .b.y, .x .a .b.y
selector-unify(".a.b", ".b.c") => .a.b.c
selector-unify("#a", "#b") => null
</syntaxhighlight>
</syntaxhighlight>


سطر 36: سطر 31:
* الدالة <code>[[Sass/selector append|selector_append()]]</code>‎: تضيف المحددات إلى بعضها بعضًا دون مسافات بينها.
* الدالة <code>[[Sass/selector append|selector_append()]]</code>‎: تضيف المحددات إلى بعضها بعضًا دون مسافات بينها.
* الدالة <code>[[Sass/selector nest|selector_nest()]]</code>‎: تُشعّب المحددات.
* الدالة <code>[[Sass/selector nest|selector_nest()]]</code>‎: تُشعّب المحددات.
* الدالة <code>[[Sass/selector unify|selector_unify()]]</code>‎: تُوحّد محددَيْن.
* الدالة <code>[[Sass/selector replace|selector_replace()]]</code>‎: تُوحّد محددَيْن.


== مصادر ==
== مصادر ==

مراجعة 19:11، 21 أبريل 2018

توحد الدالة selector_unify()‎ اثنين من المحددات في محدد واحد يطابق فقط العناصر المتطابقة في كلا المُحدّدين. تعيد الدالة القيمة المعدومة null إن لم يكن هناك محدد من هذا القبيل.

كما هو الحال مع توحيد المحددات الذي تُنجزه ‎$extend، فإن هذا لا يضمن أن المحدد الناتج سيُطابق جميع العناصر المتطابقة مع المُحدّدين المُدخلين. على سبيل المثال، إذا وُحِّد ‎.a .b مع ‎.x .y، فستعيد الدالة المحدّد ‎.a .x .b.y, .x .a .b.y، ولن يٌعاد ‎.a.x .b.y لن. هذا يُجنِّب النتاتج الكبيرة مع مُطابقة جميع العناصر التي يُحتمل أن تكون موجودةً.

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

selector_unify($selector1, $selector2)

المعاملات

‎$selector1

المُحدّد الأول الذي سيُوحّد. يمكن أن يكون عبارةً عن سلسلة نصية أو قائمة من السلاسل النصية أو قائمة من قوائم السلاسل النصية كما تُعاد من قبل &.

‎$selector2

المُحدّد الثاني الذي سيُوحّد. يمكن أن يكون عبارةً عن سلسلة نصية أو قائمة من السلاسل النصية أو قائمة من قوائم السلاسل النصية كما تُعاد من قبل &.

القيم المعادة

قائمة من قوائم السلاسل النصية التي تمثل نتيجة التوحيد، أو القيمة المعدومة null في حالة عدم حدوث التوحيد. وتكون بنفس التنسيق الذي يكون لمحدّد تُعيده &.

مثال

مثال عن استخدام الدالة selector_unify()‎:

selector-unify(".a", ".b") => .a.b
selector-unify(".a .b", ".x .y") => .a .x .b.y, .x .a .b.y
selector-unify(".a.b", ".b.c") => .a.b.c
selector-unify("#a", "#b") => null

انظر أيضًا

  • الدالة selector_append()‎: تضيف المحددات إلى بعضها بعضًا دون مسافات بينها.
  • الدالة selector_nest()‎: تُشعّب المحددات.
  • الدالة selector_replace()‎: تُوحّد محددَيْن.

مصادر