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

من موسوعة حسوب
ط استبدال النص - '\[\[تصنيف:(.*)\]\]' ب'{{SUBPAGENAME}}'
ط استبدال النص - 'توثيق Sass الرسمي.]' ب'توثيق Sass الرسمي].'
 
سطر 64: سطر 64:
*الدالة <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 الرسمي.]
*[https://sass-lang.com/documentation/Sass/Script/Functions.html#feature_exists-instance_method قسم الدالة feature_exists في صفحة الدوال في توثيق Sass الرسمي].
[[تصنيف:Sass|{{SUBPAGENAME}}]]
[[تصنيف:Sass|{{SUBPAGENAME}}]]
[[تصنيف: Sass Function|{{SUBPAGENAME}}]]
[[تصنيف: Sass Function|{{SUBPAGENAME}}]]

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

مصادر