الفرق بين المراجعتين ل"Sass/feature exists"

من موسوعة حسوب
اذهب إلى التنقل اذهب إلى البحث
ط (استبدال النص - 'توثيق Sass الرسمي.]' ب'توثيق Sass الرسمي].')
 
(4 مراجعات متوسطة بواسطة مستخدمين اثنين آخرين غير معروضة)
سطر 1: سطر 1:
 
<noinclude>{{DISPLAYTITLE: الدالة <code>()feature_exists</code> في Sass}}</noinclude>
 
<noinclude>{{DISPLAYTITLE: الدالة <code>()feature_exists</code> في Sass}}</noinclude>
تحدّد الدالة <code>feature_exists()‎</code> ما إذا كانت ميزة معينةٌ موجودةٌ في وقت تشغيل <code>[[Sass]]</code>.
+
تتحقَّق الدالة <code>feature_exists()‎</code> ما إذا كانت ميزة معيَّنةٌ موجودةٌ في وقت تشغيل [[Sass]].
  
الميزات التالية مدعومة:
+
الميزات المدعومة هي:
* <code>global-variable-shadowing</code>: تشير إلى أنّ متغيرًا محليًا سيحجب متغيراً عامًّا ما لم تُستخدم <code>‎!global</code>.
+
*<code>global-variable-shadowing</code>: تشير إلى أنّ متغيرًا محليًا سيحجب متغيرًا عامًّا ما لم تُستخدم <code>‎!global</code>.
  
* <code>extend-selector-pseudoclass</code>: تشير إلى أنّ ‎<code>@extend</code> ستصل إلى أشباه الأصناف (pseudoclasses) مثل <code>‎:not</code>.
+
*<code>extend-selector-pseudoclass</code>: تشير إلى أنّ ‎<code>[[Sass/@ rules|@extend]]</code> ستصل إلى محدِّدات الأصناف الزائفة (pseudoclasses) مثل <code>‎[[CSS/:not|:not]]</code>.
  
* <code>units-level-3</code>: تشير إلى الدعم الكامل لحسابيات الوحدات (unit arithmetic) باستخدام الوحدات المُعرّفة في مواصفات [[http://www.w3.org/TR/css3-values القيم والوحدات 3]].
+
*<code>units-level-3</code>: تشير إلى الدعم الكامل للعمليات الحسابيَّة على الواحدات (unit arithmetic) باستخدام الواحدات المُعرّفة في المواصفة [http://www.w3.org/TR/css3-values Values and Units Level 3].
  
* <code>at-error</code>: تشير إلى أنّ المُوجّه ‎<code>@error</code> مدعوم.
+
*<code>at-error</code>: تشير إلى أنّ التعليمة ‎<code>[[Sass/@ rules|@error]]</code> مدعومة.
  
* <code>custom-property</code>: تشير إلى أن مواصفات [ا[https://www.w3.org/TR/css-variables-1 لخاصيات المُخصّصة المستوى 1]] مدعومة. وهذا يعني أن الخاصيات المُخصّصة تُحلّل بشكل ثابت (parsed statically)، مع معالجة الاستيفاء مثل <code>[[SassScript]]</code>.
+
*<code>custom-property</code>: تشير إلى أن مواصفات الخاصِّيَّات المُخصّصة مدعومة. هذا يعني أن الخاصيات المُخصّصة تُحلّل بشكل ثابت (parsed statically) مع معالجة الاستيفاء مثل [[SassScript]].
 
+
==البنية العامة==
== البنية العامة ==
 
 
<syntaxhighlight lang="sass">
 
<syntaxhighlight lang="sass">
 
feature_exists($feature)
 
feature_exists($feature)
 
</syntaxhighlight>
 
</syntaxhighlight>
 +
==المعاملات==
 +
===<code>‎$feature</code>===
 +
اسم الميزة التي نريد التحقُّق من وجودها.
 +
==القيم المعادة==
 +
تُعاد القيمة المنطقيَّة <code>TRUE</code>  إذا كانت الميزة مدعومة في النسخة الحاليَّة للغة [[Sass]]. خلا ذلك، تُعاد القيمة <code>FALSE</code>.
 +
==الأخطاء والاستثناءات==
 +
سيُرمى الخطأ <code>ArgumentError</code> إن لم يكن <code>‎$feature</code> سلسلة نصيةً.
 +
==أمثلة==
 +
مثال عن استخدام الدالة <code>feature_exists()‎</code>. لمعرفة إن كانت الميزة ‎<code>[[Sass/@ rules#.E2.80.8E.40error|@error]]</code> متوافرةً أم لا؛ لاحظ استخدام ‎<code>[[Sass/control directives#.E2.80.8E.40if|@if]]</code> مع الدالة <code>[[Sass/unitless|unitless()‎]]</code>:<syntaxhighlight lang="sass">
 +
@mixin adjust-location($x, $y) {
 +
  @if unitless($x) and feature-exists(at-error) { // اختبار وجود الميزة
 +
    @error "$x may not be unitless, was #{$x}.";
 +
  }
 +
  @if unitless($y) and feature-exists(at-error) { // اختبار وجود الميزة
 +
    @error "$y may not be unitless, was #{y}.";
 +
  }
  
== المعاملات ==
+
  // اختبار أنَّ القيم المُمرَّرة إلى الدالة لها قيمة
 +
  // فعلنا ذلك تجنبًا للمشاكل في حال لم يكن المصرّف يدعم @error
 +
  @if not unitless($x) and not unitless($y) {
 +
    position: relative; left: $x; top: $y;
 +
  }
 +
}
  
=== <code>‎$feature</code> ===
+
.selector {
اسم الميزة.
+
  @include adjust-location(1em, 2em); // لن يظهر خطأ
 +
}
  
== القيم المعادة ==
+
.selector_2 {
قيمة منطقية تحدد ما إذا كانت الميزة مدعومة في النسخة الحالية للغة <code>[[Sass]]</code>.
+
  @include adjust-location(1, 2em); // سيظهر خطأ إن كان مصرّف اللغة يدعم إظهار الأخطاء من طرف المستخدم
 
+
}
== الأخطاء والاستثناءات ==
+
</syntaxhighlight>ستخرج الشيفرة السابقة الناتج الآتي عند تصريفها بمصرّف Sass حديث:<syntaxhighlight lang="text">
سيُرمى الخطأ <code>ArgumentError</code> إن لم يكن <code>$feature</code>سلسلة نصيةً.
+
Error: $x may not be unitless, was 1.
 
+
        on line 3 of stlye.scss, in `adjust-location'
==  أمثلة ==
+
        from line 18 of stlye.scss
مثال عن استخدام الدالة <code>feature_exists()‎</code>:<syntaxhighlight lang="sass">
+
  Use --trace for backtrace.
feature-exists(some-feature-that-exists) // true
+
</syntaxhighlight>وستخرج الناتج الآتي عند تصريفها بمصرِّف Sass قديم:<syntaxhighlight lang="css">
feature-exists(what-is-this-i-dont-know) // false
+
.selector {
 +
  position: relative;
 +
  left: 1em;
 +
  top: 2em; }
 
</syntaxhighlight>
 
</syntaxhighlight>
 
+
==انظر أيضًا==
== انظر أيضًا ==
+
*الدالة <code>[[Sass/function exists|function_exists()]]</code>‎: تتحقَّق ما إذا كانت دالة ما موجودة.
* الدالة <code>[[Sass/function exists|function_exists()]]</code>‎: تحدد ما إذا كانت دالة ما موجودة.
+
*الدالة <code>[[Sass/global variable exists|global_variable_exists()]]</code>‎: تتحقَّق ما إذا كان متغيِّر ما موجود في النطاق العام.
* الدالة <code>[[Sass/global variable exists|global_variable_exists()]]</code>‎: تحدد ما إذا كان متغير ما موجود في النطاق العام.
+
*الدالة <code>[[Sass/variable exists|variable_exists()]]</code>‎: تتحقَّق ما إذا كان متغير ما موجود في النطاق الحالي.
* الدالة <code>[[Sass/variable exists|variable_exists()]]</code>‎: تحدد ما إذا كان متغير ما موجود في النطاق الحالي.
+
*الدالة <code>[[Sass/mixin exists|mixin_exists()]]</code>‎: تتحقَّق ما إذا كان مخلوط ما موجودًا.
* الدالة <code>[[Sass/mixin exists|mixin_exists()]]</code>‎: تحدد ما إذا كان مخلوط ما موجودًا.
+
==مصادر==
 
+
*[https://sass-lang.com/documentation/Sass/Script/Functions.html#feature_exists-instance_method قسم الدالة feature_exists في صفحة الدوال في توثيق Sass الرسمي].
== مصادر ==
+
[[تصنيف:Sass|{{SUBPAGENAME}}]]
* [https://sass-lang.com/documentation/Sass/Script/Functions.html#feature_exists-instance_method قسم الدالة feature_exists في صفحة الدوال في توثيق Sass الرسمي.]
+
[[تصنيف: Sass Function|{{SUBPAGENAME}}]]
[[تصنيف:Sass]]
 
[[تصنيف: Sass Function]]
 

المراجعة الحالية بتاريخ 07:01، 20 مايو 2018

تتحقَّق الدالة feature_exists()‎ ما إذا كانت ميزة معيَّنةٌ موجودةٌ في وقت تشغيل Sass.

الميزات المدعومة هي:

  • global-variable-shadowing: تشير إلى أنّ متغيرًا محليًا سيحجب متغيرًا عامًّا ما لم تُستخدم ‎!global.
  • extend-selector-pseudoclass: تشير إلى أنّ ‎@extend ستصل إلى محدِّدات الأصناف الزائفة (pseudoclasses) مثل ‎:not.
  • units-level-3: تشير إلى الدعم الكامل للعمليات الحسابيَّة على الواحدات (unit arithmetic) باستخدام الواحدات المُعرّفة في المواصفة Values and Units Level 3.
  • at-error: تشير إلى أنّ التعليمة ‎@error مدعومة.
  • custom-property: تشير إلى أن مواصفات الخاصِّيَّات المُخصّصة مدعومة. هذا يعني أن الخاصيات المُخصّصة تُحلّل بشكل ثابت (parsed statically) مع معالجة الاستيفاء مثل SassScript.

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

feature_exists($feature)

المعاملات

‎$feature

اسم الميزة التي نريد التحقُّق من وجودها.

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

تُعاد القيمة المنطقيَّة TRUE إذا كانت الميزة مدعومة في النسخة الحاليَّة للغة Sass. خلا ذلك، تُعاد القيمة FALSE.

الأخطاء والاستثناءات

سيُرمى الخطأ ArgumentError إن لم يكن ‎$feature سلسلة نصيةً.

أمثلة

مثال عن استخدام الدالة feature_exists()‎. لمعرفة إن كانت الميزة ‎@error متوافرةً أم لا؛ لاحظ استخدام ‎@if مع الدالة unitless()‎:

@mixin adjust-location($x, $y) {
  @if unitless($x) and feature-exists(at-error) { // اختبار وجود الميزة
    @error "$x may not be unitless, was #{$x}.";
  }
  @if unitless($y) and feature-exists(at-error) { // اختبار وجود الميزة
    @error "$y may not be unitless, was #{y}.";
  }

  // اختبار أنَّ القيم المُمرَّرة إلى الدالة لها قيمة
  // فعلنا ذلك تجنبًا للمشاكل في حال لم يكن المصرّف يدعم @error
  @if not unitless($x) and not unitless($y) {
    position: relative; left: $x; top: $y;
  }
}

.selector {
  @include adjust-location(1em, 2em); // لن يظهر خطأ
}

.selector_2 {
  @include adjust-location(1, 2em); // سيظهر خطأ إن كان مصرّف اللغة يدعم إظهار الأخطاء من طرف المستخدم
}

ستخرج الشيفرة السابقة الناتج الآتي عند تصريفها بمصرّف Sass حديث:

Error: $x may not be unitless, was 1.
        on line 3 of stlye.scss, in `adjust-location'
        from line 18 of stlye.scss
  Use --trace for backtrace.

وستخرج الناتج الآتي عند تصريفها بمصرِّف Sass قديم:

.selector {
  position: relative;
  left: 1em;
  top: 2em; }

انظر أيضًا

  • الدالة function_exists()‎: تتحقَّق ما إذا كانت دالة ما موجودة.
  • الدالة global_variable_exists()‎: تتحقَّق ما إذا كان متغيِّر ما موجود في النطاق العام.
  • الدالة variable_exists()‎: تتحقَّق ما إذا كان متغير ما موجود في النطاق الحالي.
  • الدالة mixin_exists()‎: تتحقَّق ما إذا كان مخلوط ما موجودًا.

مصادر