الفرق بين المراجعتين ل"Sass/feature exists"
< Sass
اذهب إلى التنقل
اذهب إلى البحث
ط (استبدال النص - 'توثيق Sass الرسمي.]' ب'توثيق Sass الرسمي].') |
|||
(3 مراجعات متوسطة بواسطة مستخدمين اثنين آخرين غير معروضة) | |||
سطر 1: | سطر 1: | ||
<noinclude>{{DISPLAYTITLE: الدالة <code>()feature_exists</code> في Sass}}</noinclude> | <noinclude>{{DISPLAYTITLE: الدالة <code>()feature_exists</code> في Sass}}</noinclude> | ||
− | + | تتحقَّق الدالة <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>[[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>: تشير إلى الدعم الكامل | + | *<code>units-level-3</code>: تشير إلى الدعم الكامل للعمليات الحسابيَّة على الواحدات (unit arithmetic) باستخدام الواحدات المُعرّفة في المواصفة [http://www.w3.org/TR/css3-values Values and Units Level 3]. |
− | * <code>at-error</code>: تشير إلى أنّ | + | *<code>at-error</code>: تشير إلى أنّ التعليمة <code>[[Sass/@ rules|@error]]</code> مدعومة. |
− | * <code>custom-property</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; | |
+ | } | ||
+ | } | ||
− | + | .selector { | |
− | + | @include adjust-location(1em, 2em); // لن يظهر خطأ | |
+ | } | ||
− | + | .selector_2 { | |
− | + | @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> | </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()
: تتحقَّق ما إذا كان مخلوط ما موجودًا.