الفرق بين المراجعتين لصفحة: «Sass/feature exists»
< Sass
جميل-بيلوني (نقاش | مساهمات) ط مراجعة الصفحة وتدقيقها. |
ط استبدال النص - 'توثيق Sass الرسمي.]' ب'توثيق Sass الرسمي].' |
||
(2 مراجعات متوسطة بواسطة نفس المستخدم غير معروضة) | |||
سطر 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}."; | |||
} | |||
// اختبار أنَّ القيم المُمرَّرة إلى الدالة لها قيمة | |||
// فعلنا ذلك تجنبًا للمشاكل في حال لم يكن المصرّف يدعم @error | |||
@if not unitless($x) and not unitless($y) { | |||
position: relative; left: $x; top: $y; | |||
} | |||
} | |||
.selector { | |||
@include adjust-location(1em, 2em); // لن يظهر خطأ | |||
} | |||
== مصادر == | .selector_2 { | ||
* [https://sass-lang.com/documentation/Sass/Script/Functions.html#feature_exists-instance_method قسم الدالة feature_exists في صفحة الدوال في توثيق Sass الرسمي. | @include adjust-location(1, 2em); // سيظهر خطأ إن كان مصرّف اللغة يدعم إظهار الأخطاء من طرف المستخدم | ||
[[تصنيف:Sass]] | } | ||
[[تصنيف: Sass Function]] | </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|{{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()
: تتحقَّق ما إذا كان مخلوط ما موجودًا.