الفرق بين المراجعتين ل"Sass/selector unify"

من موسوعة حسوب
اذهب إلى التنقل اذهب إلى البحث
(أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: الدالة <code>()selector_unify</code> في Sass}}</noinclude> تعيد الدالة <code>selector_unify()‎</code> نسخة جديدة...')
 
ط (استبدال النص - '\[\[تصنيف:(.*)\]\]' ب'{{SUBPAGENAME}}')
 
(7 مراجعات متوسطة بواسطة 3 مستخدمين غير معروضة)
سطر 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>[[Sass/@ rules#.D8.A7.D9.84.D9.82.D8.A7.D8.B9.D8.AF.D8.A9 .E2.80.8E.40extend|extend@]]</code>، فإنَّ هذا لا يضمن أن المحدِّد الناتج باستعمال هذه الدالة سيُطابق جميع العناصر المتطابقة بين المُحدّدين المُمرَّرين. إذا وُحِّد مثلًا المحدِّد <code>.a .b</code> مع المحدِّد ‎<code>.x .y</code>، فستعيد الدالة المحدِّد <code>‎.a .x .b.y, .x .a .b.y</code> وليس المحدِّد <code>‎.a.x .b.y</code>. هذا يُجنِّب النتاتج الطويلة والكبيرة في حين أنَّه يطابق جميع العناصر التي يُحتمل أن تكون مفيدةً.
</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>[[Sass/SassScript#.D8.A7.D9.84.D8.B1.D9.85.D8.B2 .26 .D9.81.D9.8A SassScript|&]]</code>.
  
=== <code>‎$extendee</code> ===
+
=== <code>‎$selector2</code> ===
المحدد الذي سيُوسع. يمكن أن يكون عبارةً عن سلسلة نصية أو قائمة من السلاسل النصية أو قائمة من قوائم السلاسل النصية كما تُعاد من قبل <code>&</code>.
+
المُحدّد الثاني المراد توحيده. يمكن أن يكون عبارةً عن سلسلة نصيَّة، أو قائمة من سلاسل نصيَّة، أو قائمة من قوائم من سلاسل نصيَّة كما تُعاد باستعمال الرمز <code>[[Sass/SassScript#.D8.A7.D9.84.D8.B1.D9.85.D8.B2 .26 .D9.81.D9.8A SassScript|&]]</code>.
 
 
=== <code>‎$selector</code> ===
 
المحدد الذي سيُسلَك داخلَ المحدد <code>‎$selector</code>. يمكن أن يكون عبارةً عن سلسلة نصية أو قائمة من السلاسل النصية أو قائمة من قوائم السلاسل النصية كما تُعاد من قبل <code>&</code>.
 
  
 
== القيم المعادة ==
 
== القيم المعادة ==
قائمة من قوائم السلاسل النصية التي تمثل نتيجة التوسعة. وتكون بنفس التنسيق الذي يكون لمحدّد تُعيده <code>&</code>.
+
تُعاد قائمة من قوائم من سلاسل نصيَّة التي تمثل نتيجة التوحيد، أو القيمة العدميَّة <code>null</code> في حالة عدم حدوث التوحيد. ويكون تنسيقها بنفس تنسيق المحدّد المُعاد باستعمال الرمز <code>[[Sass/SassScript#.D8.A7.D9.84.D8.B1.D9.85.D8.B2 .26 .D9.81.D9.8A SassScript|&]]</code>.
 
 
== الأخطاء والاستثناءات ==
 
سيُرمى الخطأ <code>ArgumentError</code> إن فشلت التوسعة.
 
 
 
== مثال ==
 
مثال عن استخدام الدالة <code>selector_unify()‎</code>:<syntaxhighlight>
 
selector-extend(".a .b", ".b", ".foo .bar") => .a .b, .a .foo .bar, .foo .a .bar
 
  
 +
== أمثلة ==
 +
أمثلة نموذجية عن استخدام الدالة <code>selector_unify()‎</code>:<syntaxhighlight lang="sass">
 +
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>
  
 
== انظر أيضًا ==
 
== انظر أيضًا ==
* الدالة <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>‎: تبدِّل محدِّد معين مع محدِّد آخر في المحدِّد المعطى.
 +
* الدالة <code>[[Sass/selector extend|selector_extend()]]</code>‎: توسّع محدِّدًا معيَّنًا.
 +
* الدالة <code>[[Sass/is superselector|is_superselector()]]</code>‎: تتحقَّق ما إذا كان المحدِّد فائقًا.
  
 
== مصادر ==
 
== مصادر ==
* [https://sass-lang.com/documentation/Sass/Script/Functions.html#selector_unify-instance_method قسم الدالة selector_unify في صفحة الدوال في توثيق Sass الرسمي.]
+
* [https://sass-lang.com/documentation/Sass/Script/Functions.html#selector_unify-instance_method قسم الدالة selector_unify في صفحة الدوال في توثيق Sass الرسمي].
[[تصنيف:Sass]]
+
[[تصنيف:Sass|{{SUBPAGENAME}}]]
[[تصنيف: Sass Function]]
+
[[تصنيف: Sass Function|{{SUBPAGENAME}}]]

المراجعة الحالية بتاريخ 07:01، 20 مايو 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()‎: تبدِّل محدِّد معين مع محدِّد آخر في المحدِّد المعطى.
  • الدالة selector_extend()‎: توسّع محدِّدًا معيَّنًا.
  • الدالة is_superselector()‎: تتحقَّق ما إذا كان المحدِّد فائقًا.

مصادر