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

من موسوعة حسوب
ط مراجعة الصفحة وتدقيقها.
لا ملخص تعديل
سطر 3: سطر 3:


الميزات المدعومة هي:
الميزات المدعومة هي:
* <code>global-variable-shadowing</code>: تشير إلى أنّ متغيرًا محليًا سيحجب متغيرًا عامًّا ما لم تُستخدم <code>‎!global</code>.
*<code>global-variable-shadowing</code>: تشير إلى أنّ متغيرًا محليًا سيحجب متغيرًا عامًّا ما لم تُستخدم <code>‎!global</code>.


* <code>extend-selector-pseudoclass</code>: تشير إلى أنّ ‎<code>[[Sass/@ rules|@extend]]</code> ستصل إلى محدِّدات الأصناف الزائفة (pseudoclasses) مثل <code>‎[[CSS/:not|: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 Values and Units Level 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>[[Sass/@ rules|@error]]</code> مدعومة.
*<code>at-error</code>: تشير إلى أنّ التعليمة ‎<code>[[Sass/@ rules|@error]]</code> مدعومة.


* <code>custom-property</code>: تشير إلى أن مواصفات الخاصِّيَّات المُخصّصة مدعومة. هذا يعني أن الخاصيات المُخصّصة تُحلّل بشكل ثابت (parsed statically) مع معالجة الاستيفاء مثل [[SassScript]].
*<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>‎$feature</code> ===
اسم الميزة التي نريد التحقُّق من وجودها.
اسم الميزة التي نريد التحقُّق من وجودها.
 
==القيم المعادة==
== القيم المعادة ==
تُعاد القيمة المنطقيَّة <code>TRUE</code>  إذا كانت الميزة مدعومة في النسخة الحاليَّة للغة [[Sass]]. خلا ذلك، تُعاد القيمة <code>FALSE</code>.
تُعاد القيمة المنطقيَّة <code>TRUE</code>  إذا كانت الميزة مدعومة في النسخة الحاليَّة للغة [[Sass]]. خلا ذلك، تُعاد القيمة <code>FALSE</code>.
 
==الأخطاء والاستثناءات==
== الأخطاء والاستثناءات ==
سيُرمى الخطأ <code>ArgumentError</code> إن لم يكن <code>‎$feature</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}.";
  }


==  أمثلة ==
  // اختبار أنَّ القيم المُمرَّرة إلى الدالة لها قيمة
المثال 1: استخدام الدالة <code>feature_exists()‎</code>.<syntaxhighlight lang="sass">
  // فعلنا ذلك تجنبًا للمشاكل في حال لم يكن المصرّف يدعم @error
feature-exists(some-feature-that-exists) // true
  @if not unitless($x) and not unitless($y) {
feature-exists(some-feature-that-DONOT-exists) // false
    position: relative; left: $x; top: $y;
</syntaxhighlight>
  }
}


== انظر أيضًا ==
.selector {
* الدالة <code>[[Sass/function exists|function_exists()]]</code>‎: تتحقَّق ما إذا كانت دالة ما موجودة.
  @include adjust-location(1em, 2em); // لن يظهر خطأ
* الدالة <code>[[Sass/global variable exists|global_variable_exists()]]</code>‎: تتحقَّق ما إذا كان متغيِّر ما موجود في النطاق العام.
}
* الدالة <code>[[Sass/variable exists|variable_exists()]]</code>‎: تتحقَّق ما إذا كان متغير ما موجود في النطاق الحالي.
* الدالة <code>[[Sass/mixin exists|mixin_exists()]]</code>‎: تتحقَّق ما إذا كان مخلوط ما موجودًا.


== مصادر ==
.selector_2 {
* [https://sass-lang.com/documentation/Sass/Script/Functions.html#feature_exists-instance_method قسم الدالة feature_exists في صفحة الدوال في توثيق Sass الرسمي.]
  @include adjust-location(1, 2em); // سيظهر خطأ إن كان مصرّف اللغة يدعم إظهار الأخطاء من طرف المستخدم
}
</syntaxhighlight>ستخرج الشيفرة السابقة الناتج الآتي عند تصريفها بمصرّف Sass حديث:<syntaxhighlight lang="text">
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.
</syntaxhighlight>وستخرج الناتج الآتي عند تصريفها بمصرِّف Sass قديم:<syntaxhighlight lang="css">
.selector {
  position: relative;
  left: 1em;
  top: 2em; }
</syntaxhighlight>
==انظر أيضًا==
*الدالة <code>[[Sass/function exists|function_exists()]]</code>‎: تتحقَّق ما إذا كانت دالة ما موجودة.
*الدالة <code>[[Sass/global variable exists|global_variable_exists()]]</code>‎: تتحقَّق ما إذا كان متغيِّر ما موجود في النطاق العام.
*الدالة <code>[[Sass/variable exists|variable_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]]
[[تصنيف:Sass]]
[[تصنيف: Sass Function]]
[[تصنيف: Sass Function]]

مراجعة 11:45، 8 مايو 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()‎: تتحقَّق ما إذا كان مخلوط ما موجودًا.

مصادر