Unlimited Wordpress themes, plugins, graphics & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Web Design
  2. CSS

7 وحدات CSS قد لم يسبق لك معرفتها

by
Length:MediumLanguages:

Arabic (العربية/عربي) translation by Mac Alnakari (you can also view the original English article)

ملاحظة: الشكر للصديق تيمور عبد العزيز لمشاركته في هذه الترجمة.

من السهل أن يجد المرء نفسه آسيراً للعمل بتقنيات الـ CSS المألوفة لديه، إلا أن من شأن ذلك أن يضعه في موقفٍ ضعيف عند ظهور مشاكلَ جديدة.

وكما أن شبكة الانترنت تستمر في النمو، فإن الطلب على حلول جديدة سيستمر في النمو. لذلك، فإننا كمصممي إنترنت و مطوري واجهات تطبيقات، ليس آمامنا من خيار إلا أن نتعرف على أدواتنا، بل و أن نتقنها بشكل جيد.

ويعني هذا، الإلمامُ كذلك بمعرفة الآدوات التخصصية، التي لا يجري استعمالها كثيراً، و لكن عند الحاجة إليها، تكون هي الآداة الآنجح لآداء المهمة.

اليوم، سأعرّفكم على بعض آدوات للـ CSS قد لم تتعرفوا إليها من قبل. كل واحدة من هذه الآدوات هي وحدة قياس مثل الـ pixel و الـ em و من الممكن جداً أنكم لم تسمعوا عنها من قبل! دعونا نتعمق بها.

الـ rem

سوف نبدأ بشئ مشابه لما هو مألوف لديكم مسبقاً. آلا وهو وحدة قياس em والتي تعرف بأنها قيمة الـ font-size (حجم الخط) الحالي للعنصر. لذا، على سبيل المثال، إذا قمت بتعيين حجم الخط للعنصر body، فإن قيمة em لأي عنصر داخل الـ body سوف تكون مساوية لقيمة حجم الخط تلك..

في هذا المثال حددنا قيمة font-size للعنصر div لتكون 1.2em. وهو ما يعني 1.2 ضعف حجم الخط الموروث، الذي هو في هذه الحالة 14px. فتكون قيمة حجم الخط الناتج هي 16.8px.

لكن، ماذا يحدث عندما نحدد حجم الخط باستعمال em للعناصر المتداخلة مع بعضها البعض؟ في المثال التالي سنطبق نفس كود CSS الوارد في المثال السابق. كل div سوف يرث حجم خطه من العنصر الأعلى منه مباشرة (parent)، مما سينتج عنه زيادة تدريجية في حجم الخط.

قد تكون هذه هي النتيجة المرغوبة في بعض الحالات، لكنك غالباً ما قد ترغب بمجرد الإعتماد على مقياس واحد. في هذه الحالة، ينبغي أن نستخدم وحدة القياس rem. حرف "r" في rem يشير إلى "root" أي الجذر. وتساوي قيمة font-size للعنصر الأساسي (الجذري)، وهو ما يمثله غالباً عنصر الـ html.

في المثال السابق، ستكون قيمة حجم الخط لجميع عناصر div المتداخلة هيا 16.8px.

مناسب للتصاميم القائمة على الأعمدة (Grids)

الـ rem ليست فقط مفيدة لتحديد حجم الخط. فعلى سبيل المثال، يمكنك إنشاء نظام أعمدة متكامل (grid system) أو مكتبة ستايل UI بالأعتماد على font-size الخاص بعنصر html الجذري وذلك بإستخدام وحدة القياس rem، والإستعانة بتدرج مقياس الـ em في أماكن محددة. وهو ما سوف يتيح لك نظاماً لحجم الخط يمكن توقعه و تنويعه.

الفكرة وراء إتباع استراتيجية كهذه تكمن في السماح لتصميمك بالتدرج حسب حجم المحتوى الخاص به. ومع هذا، قد لا تكون بالضرورة هي الخيار الأمثل في جميع الحالات.

هل بإمكاني إستخدام هذه الخاصية؟

إطلع على مدى دعم خاصية الـ rem (root em) في موقع caniuse.com

الـ vh و الـ vw

تقنيات تصاميم الأنترنت التجاوبية (responsive web design) تعتمد بشكل كبير على قواعد النسب المئوية. مع ذلك، فإن النسب المئوية ليست دائما الحل الأنجح لكل المشاكل. فمثلاً عرض العنصر في CSS يعتمد على عرض العنصر الأعلى منه مباشرة. ماذا لو أردت إستخدام عرض أو ارتفاع الحجم الكلي لصفحة المتصفح أو مايعرف بإطار العرض (viewport) بدلاً من العرض الخاص بالعنصر الأعلى (parent)؟ هذا بالضبط ما تتيحه لك وحدتي الـ vh و الـ vw.

وحدة الـ vh تساوي 1/100 من إرتفاع إطار العرض (viewport). على سبيل المثال، إذا كان ارتفاع المتصفح هو 900px، فإن 1vh سوف يساوي 9px. بنفس الطريقة إذا كان عرض الـ viewport يساوي 750px ، فإن 1vw سوف يساوي 7.5px.

يمكننا الإستفادة من هذه الخاصية في عدد لامتناهي من الإستخدامات. على سبيل المثال، بالأمكان الحصول على شرائح عرض (Slides) بالإرتفاع الكامل أو الشبه كامل للشاشة وذلك بإستخدام سطر CSS واحد.

تخيل أنك أردت إنشاء عنواناً ما بحيث يملأ العرض الكلي للشاشة. لتحقيق ذلك، سوف نقوم بتعيين font-size بوحدة الـ vw. وبالتالي فأن الحجم سوف يتغير على حسب عرض المتصفح.

هل بإمكاني إستخدام هذه الخاصية؟

إطلع على مدى دعم خاصية وحدات الـ viewport: vw، vh في موقع caniuse.com

الـ vmin و الـ vmax

بينما يرتبط كل من الـ vh و الـ vw دائماً بعرض وإرتفاع viewport، فإن vmin و vmax يرتبطان بالحد الأقصى أو الآدنى للعرض والإرتفاع و يعتمد هذا على أيهما الأكبر والأصغر. على سبيل المثال، إذا كانت أبعاد المتصفح محددة بقيمة 1100px عرض و 700px طول ، فإن 1vmin سوف يساوي 7px و 1vmax سوف يساوي 11px. أما إذا كان العرض محدداً بقيمة 800px و الطول 1080px، فإن الـ vmin سوف تساوي 8px بينما سيكون الـ vmax مساوياً لـ 10.8px.

إذاً، متى يمكنني استعمال هذه القيم؟

تخيل أنك احتجت إلى عنصر يكون دائماً مرئياً على الشاشة. فإن استعمال ارتفاع وعرض محددين بقيمة vmin تحت 100 سوف يتيح لك ذلك. على سبيل المثال، إذا أردنا إنشاء عنصر مربع يكون ملامساً بشكل دائم لجانبي الشاشة على الأقل ، بإمكاننا القيام بذلك على النحو التالي:

إذا احتجت إلى إنشاء صندوق مربع يغطي بشكل كامل الحجم المرئي لإطار العرض viewport (ملامساً الجوانب الأربعة للشاشة في جميع الأوقات)، استخدم نفس الطريقة ولكن بإضافة الـ vmax.

مزج هذه التقنيات ببعضها البعض يمنح مرونة كبيرة لإستخدام حجم إطار العرض (viewport) بطرق جديدة و ممتعة.

هل بإمكاني إستخدام هذه الخاصية؟

إطلع على مدى دعم خاصية وحدات الـ viewport: vmin، vmax في موقع caniuse.com

الـ ex و الـ ch

وحدتي ex و ch شبيهتان بالـ em و rem حيث تعتمدان على الخط الحالي وحجمه. لكن، وعلى عكس الـ em و الـ rem ، فإن هاتين الوحدتين تعتمدان كذلك على نوع الخط font-family، حيث يتم تحديدهما بناءً على مقاييس خاصة بالخط نفسه.

تُعرف وحدة الـ ch أو الـ character كونها "وحدة قياس متقدمة" لحساب عرض خانة الحرف 0. يمكن الاطلاع على نقاش شيق حول ما يعنيه هذا على مدونة إريك مايرز، لكن المفهوم الآساسي لها يتلخص في أنه ولدى تعيين خط أحادى المسافة (monospace)، يتم حساب العرض بناءً على عدد ما من الأحرف، مثلاً width: 40ch; يمكنه دائماً استيعاب سلسلة من 40 حرف من ذلك الخط تحديداً. بينما تتلخص الاستعمالات التقليدية لهذه القاعدة بشكل خاص في التصاميم بلغة برايل (لفاقدي البصر)، إلا أن الامكانيات للابتكار هنا تتخطى بكل تأكيد هذه الاستعمالات البسيطة.

تُعرّف وحدة الـ ex بـ "طول الحرف x للخط المستخدم أو ما يعادل نصف em واحدة". الـ x-height لخطٍ ما هو إرتفاع حرف الـ x الصغيرة من ذلك الخط. عادةً ما يكون ذلك في علامة المنتصف لذلك الخط.

الـ x-height هو طول حرف الـ x الصغيرة للخط (للمزيد من المعلومات راجع مقالة The Anatomy of Web Typography)

هناك الكثير من الاستعمالات لهذا النوع من وحدات القياس، معظمها للتنسيق الدقيق للخطوط المطبوعة. على سبيل المثال، عنصر الـ sup و الذي يدل على الحرف المكتوب فوق الخط (superscript)، يمكن دفعه للآعلى في السطر باستخدام position relative و قيمة bottom تساوي 1ex. وبنفس الطريقة يمكننا سحب عنصر subscript للآسفل. تستخدم المتصفحات خاصية الـ vertical-align بشكل تلقائي للتعامل مع عناصر superscript و subscript، ولكن إذا أردت أن تتحكم في الخط بشكل أكثر دقة فيمكنك التعامل مع هذه العناصر كالتالي:

هل بإمكاني إستخدام هذه الخاصية؟

في الوقت الذي نجد فيه بأن وحدة ex موجودة منذ إصدار CSS1، إلا أنه وعلى الرغم من ذلك فأنك لن تجد أي دعم قوي لوحدة ch. للحصول على مزيد من التفاصيل بخصوص دعم الوحدات، الرجاء الإطلاع على CSS units and values من مدونة إريك ماير

الخلاصة

متابعة التطور والتوسع المستمرين في عالم الـ CSS هو أمر في غاية الأهمية حتى تظل على معرفة وافية بجميع الآدوات التي في جعبتك. فقد تواجهك مشكلةٌ معينة تتطلب حلاً غير متوقع باستخدام إحدى هذه الوحدات أو غيرها من وحدات القياس المغمورة و الغير مشهورة. خصص وقتاً لقراءة المواصفات الجديدة. اشترك للحصول على نشرات الأخبار من مصادر قيمة مثل cssweekly. ولا تنس التسجيل الآن للحصول على النشرات الأسبوعية، الدورات، الدروس والموارد المجانية كهذه المقالة في قسم Web Design على موقع Tuts+.

المزيد للقراءة

المزيد من المعلومات الجيدة عن وحدات CSS.

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.