Professional Documents
Culture Documents
DECEMBER 4, 2023
LAKHFIF YAHIA ABDERRAOUF
STAIACDADEMY
1|Page
2|Page
TABLE OF CONTENTS
CSS TUTORIAL
CSSاختصار لـ Cascading Style Sheets.يتم استخدام CSSداخل HTMLأو SVGلتصميم محتوى صفحة HTMLالخاصة
بك.
يتكون موقع الويب أو تطبيق الويب الحديث من HTMLو CSSو JavaScriptوربما SVG.يتم استخدام HTMLلتحديد المحتوى
الموجود في موقع الويب أو تطبيق الويب -محتواه وتكوينه .يتم استخدام CSSلتحديد كيفية عرض هذا المحتوى باأللوان والحدود والخطوط
والخلفيات وما إلى ذلك .ويتم استخدام JavaScriptإلضفاء الحيوية على موقع الويب أو تطبيق الويب .يتم استخدام SVGإلنشاء رسومات
متجهة قابلة للتطوير للمخططات واأليقونات والشعارات.
تحتاج إلى معرفة HTMLبشكل معقول قبل أن تتعلم CSS.إذا لم تكن تستخدم لغة HTMLاآلن ،فلديّ برنامج تعليمي لـ HTML4وبرنامج
HTML5التعليمي أيضًا -وكالهما مجاني.
يركز هذا البرنامج التعليمي لـ CSSعلى استخدام CSSمع HTML.إذا كنت تريد استخدام CSSمع ، SVGفاطلع على البرنامج التعليمي
الخاص بـ SVGو CSS.
إصدارات CSS
في وقت كتابة هذا التقرير ،كان هناك إصداران رئيسيان من CSSقيد االستخدام . CSS 2.1و CSS 3.0.سأصف الميزات من كال
اإلصدارين في هذا البرنامج التعليمي .بعد كل شيء ،بمجرد دعم ميزة CSSمعينة ،ينسى األشخاص ما إذا كانت هذه الميزة جاءت من CSS
2.1أوCSS 3.0.
مثال CSS
فيما يلي مثال سريع لـ CSSداخل صفحة ، HTMLحتى تتمكن من رؤية كيف تبدو:
><!DOCTYPE html
><html
><body
><style
{ div
;border: 1px solid black
}
></style
></body
8|Page
></html
يوضح هذا المثال الحد األدنى من صفحة HTMLمع عنصر styleوعنصر div.يحتوي عنصر styleعلى كودCSS
يوضح مثال CSSهذا أن جميع عناصر divيجب أن يتم تصميمها بحدود عرضها 1بكسل ،صلبة وسوداء اللون.
امثلة عن :CSS
9|Page
10 | P a g e
تم تصميم CSSلالستخدام مع HTMLأو SVGهناك ثالث طرق يمكنك من خاللها تضمين CSSفي ملف HTMLالخاص بك:
إن أبسط طريقة لتضمين CSSفي صفحة HTMLهي تضمين CSSداخل سمة النمط لعنصر HTML.يتم تطبيق خصائص CSSالمضمنة
داخل سمة النمط فقط على عنصر HTMLالذي تم تضمينها فيه .هنا كيف يبدو ذلك:
يقوم هذا المثال بإدراج حدود خاصية CSSفي سمة النمط الخاصة بعنصر div.قيمة خاصية الحدود هي 1بكسل أسود خالص ،مما يعين حدود
عنصر divإلى حد أسود بعرض بكسل واحد.
إذا كنت بحاجة إلى تعيين أكثر من خاصية CSSداخل عنصر النمط ،فافصل خصائص CSSبفاصلة منقوطة ،كما يلي:
><div style="border: 1px solid black; font-size: 18px;"> Style This! </div
هناك خيار آخر الستخدام CSSفي HTMLوهو تضمين عناصر CSSداخل نمط HTMLداخل صفحة HTMLالخاصة بك .إذا كنت
بحاجة إلى تطبيق نفس األنماط على عناصر HTMLمتعددة ،فهذا أسهل بكثير من تعيين األنماط داخل كل عنصر HTMLفي سمة النمط
الخاصة به .إليك مثال CSSباستخدام عنصر النمط:
><style
{ div
;border: 1px solid black
}
></style
12 | P a g e
يوضح هذا المثال عنصر نمط واحد يحدد قاعدة CSSالتي يتم تطبيقها على جميع عناصر div.وبالتالي ،يتم تطبيق خاصية CSSالموجودة
داخل عنصر النمط (خاصية الحدود) على كال عنصري divفي المثال.
يمكنك تحديد أكثر من قاعدة CSSداخل نفس عنصر النمط .هنا مثال:
><style
{ div
;border: 1px solid black
}
{ span
;border: 1px solid blue
}
></style
يحدد هذا المثال قاعدتين من قواعد CSS.يتم تطبيق قاعدة CSSاألولى على جميع عناصر ، divويتم تطبيق قاعدة CSSالثانية على جميع
عناصر االمتداد.
يمكنك أيضًا تضمين أكثر من عنصر نمط في نفس صفحة HTML.هنا مثال:
><style
{ div
;border: 1px solid black
}
></style
><style
{ span
;border: 1px solid blue
}
></style
يوضح هذا المثال قواعد CSSمن المثال السابق المضمنة في عنصر النمط الخاص بها.
يمكن تضمين عناصر النمط إما داخل عنصر رأس HTMLأو عنصر النص .هنا مثال:
><!DOCTYPE html
><html
><head
><style
{ div
13 | P a g e
><body
><style
{ span
;border: 1px solid blue
}
></style
></body
></html
في هذا المثال ،يتم تضمين قاعدة CSSلعناصر divداخل عنصر النمط الخاص بها داخل عنصر HTMLالرئيسي ،ويتم تضمين قاعدة
CSSلعناصر االمتداد داخل عنصر النمط الخاص بها داخل عنصرbody HTML
إذا كنت بحاجة إلى تطبيق نفس نمط CSSعلى صفحات HTMLمتعددة ،فمن األسهل نقل قواعد )rules ( CSSإلى ملف ،CSSثم ربط
هذا الملف مع صفحات HTMLالخاصة بك .يمكنك الإحالة إلى ورقة أنماط خارجية بطريقتين:
قم باإلشارة إلى ملف CSSخارجي باستخدام عنصر االرتباط (داخل عنصر الرأس) .فيما يلي مثال على ذلك:
><!DOCTYPE html
><html
><head
>"<link rel="stylesheet" type="text/css" href="my-css-file.css
14 | P a g e
></head
><body
><div> Style This! </div
><span> Style This Too! </span
></body
></html
يرتبط هذا المثال بملف CSSخارجي يسمى my-css-file.css.يجب أن يكون هذا الملف متا ًحا عبر اإلنترنت ،وفي هذه الحالة يجب أن
يكون موجودًا في نفس المجلد directoryالذي يوجد به ملف HTML.وبالتالي ،إذا كان ملف HTMLموجودًا على
،http://mydomain.com/my-website/my-html-file.htmlفيجب أن يكون ملف CSSمتا ًحا على
http://mydomain.com/my-website/my -css-file.css.
في الواقع ،يمكن أن تحتوي سمة hrefلعنصر االرتباط على عنوان URLمطلق أو نسبي .لمزيد من المعلومات حول عناوين URLالمطلقة
والنسبية ،راجع HTMLوعناوين URLفي برنامج HTML4التعليمي.
إذا قمنا بنقل قواعد CSSمن األمثلة السابقة إلى ملف ، my-cess-file.cssفستبدو المحتويات كما يلي:
{ div
;border: 1px solid black
}
{ span
;border: 1px solid blue
}
الحظ أن ملف CSSال يحتوي على عنصر النمط . styleفهو ال يحتوي إال على قواعد (rules) CSSنفسها.
تعليمات @IMPORT
يمكنك أيضًا استيراد ملف CSSخارجي من داخل عنصر النمط باستخدام تعليمات @import.إليك مثال : CSS @import
><style
;)'@import url('http://mydomain.com/my-website/my-css-file.css
></style
سيتضمن هذا المثال ملف CSS http://mydomain.com/my-website/my-css-file.cssفي صفحة HTMLالتي تحتوي
على عنصر النمط.
15 | P a g e
يمكنك تصميم عناصر HTMLعبر خصائص CSS.قد تحتوي عناصر HTMLالمختلفة على خصائص CSSمختلفة يمكنك تعيينها .يمكن
تنظيم خصائص CSSفي قواعد CSS.تقوم قاعدة CSSبتجميع مجموعة من خصائص CSSمعًا ،وتطبق جميع الخصائص على عناصر
HTMLالمطابقة لقاعدة CSS.سيتم تغطية كل من خصائص CSSوقواعد CSSبالتفصيل في هذا النص.
تقوم خاصية CSSبتصميم أحد جوانب عنصر HTML.وفيما يلي بعض األمثلة على ذلك:
في هذا المثال ،تم تطبيق خاصيتين CSSعلى عنصر div:خصائص الحدود وحجم الخط.
الً ،ثم النقطتان ،ثم القيمة .فيما يلي النمط العام الذي يتبعه
يتكون إعالن خاصية CSSمن اسم الخاصية وقيمة الخاصية .يأتي اسم الخاصية أو ّ
إعالن خاصية CSS
property-name : property-value
إذا قمت بتحديد أكثر من خاصية ، CSSفسيتم فصل كل زوج من االسم والقيمة بفاصلة منقوطة ،كما يلي:
;property1 : property-value1
;property2 : property-value2
ليس من الضروري أن ينتهي إعالن الخاصية األخير بفاصلة منقوطة ،ولكنه يسهل إضافة المزيد من خصائص CSSدون نسيان وضع تلك
الفاصلة المنقوطة اإلضافية.
هناك العديد من خصائص CSSالتي يمكنك تحديدها لعناصر HTMLالمختلفة .يتم تغطية خصائص CSSهذه في نصوصها الخاصة.
قاعدة CSSهي مجموعة من خصائص CSSواحدة أو أكثر والتي سيتم تطبيقها على واحد أو أكثر من عناصر HTMLالمستهدفة.
تتكون قاعدة CSSمن محدد CSSومجموعة من خصائص CSS.يحدد محدد CSSعناصر HTMLالتي سيتم استهدافها باستخدام قاعدة
CSS.تحدد خصائص CSSنمط عناصر HTMLالمستهدفة.
16 | P a g e
{ div
border ;: 1px solid black
;font-size : 18px
}
يقوم هذا المثال بإنشاء قاعدة CSSتستهدف جميع عناصر ، divوتعيين حدود خصائص CSSوحجم الخط للعناصر المستهدفة.
جزء محدد ، CSSقاعدة CSSهي الجزء الذي يسبق أول { .في المثال أعاله ،هذا هو الجزء divمن قاعدة CSS.يتم إدراج خصائص
CSSداخل الكتلة{ ... }.
يجب تحديد قواعد CSSإما داخل عنصر النمط أو داخل ملف CSSخارجي.
17 | P a g e
CSS SELECTORS
محددات CSSهي جزء من قواعد CSSالتي تحدد عناصر HTMLالتي تتأثر بقاعدة CSS.فيما يلي مثال لقاعدة :CSS
{ div
;border: 1px solid black
}
جزء محدد CSSمن قاعدة CSSأعاله هو:
div
يعني هذا المحدد أن جميع عناصر divيجب أن تكون مستهدفة بواسطة قاعدةCSS.
هناك عدة أنواع مختلفة من محددات CSS.أضاف كل من CSS 1.0و CSS 2.1و CSS 3.0محددات إلى معيار CSS.سيتم تمرير
بقية هذا النص عبر محددات CSSهذه.
يتم استخدام محدد CSSالعالمي لتحديد جميع العناصر .تم وضع عالمة * .فيما يلي مثال لمحدد CSSالكلي :
{ *
;font-size: 18px
}
يحدد هذا المثال جميع عناصر HTMLويعين خاصية CSSالخاصة بحجم الخط.
ال يتم استخدام محدد CSSالعالمي بمفرده في كثير من األحيان .يتم استخدامه غالبًا مع محدد فرعي أو محدد سليل.
محدد العنصر هو محدد CSSاألساسي .يقوم بتحديد كافة عناصر HTMLمن نفس النوع .على سبيل المثال ،جميع عناصر divأو عناصرp.
باستخدام محدد CSSللعنصر ،يمكنك ببساطة كتابة اسم العنصر للعناصر التي سيتم تطبيق قاعدة CSSعليها .فيما يلي ثالثة أمثلة:
{ div
;border: 1px solid black
}
{ p
;font-size: 18px
}
{ input
;border: 1px solid #cccccc
}
18 | P a g e
تحتوي كل قواعد CSSالثالث هذه على محدد يحدد كل نوع معين من عناصر HTML.يقوم محدد CSSاألول بتحديد جميع عناصر div.
محدد CSSالثاني يحدد جميع عناصر p.محدد CSSالثالث يحدد جميع عناصر اإلدخال.
يمكنك تحديد أي عنصر HTMLباستخدام محدد العناصر .ستتأثر جميع العناصر من هذا النوع/االسم بقاعدة CSSالتي تحتوي على محدد
العنصر.
محدد الفئة هو محدد CSSآخر شائع االستخدام .يقوم محدد الفئة بتحديد كافة عناصر HTMLالتي تم تعيين فئة CSSعليها .يمكنك تعيين فئة
CSSعلى عنصر HTMLعن طريق إعطاء عنصر HTMLسمة فئة .هنا مثال:
كما ترون ،يمكنك إعطاء أنواع مختلفة من عناصر HTMLنفس فئة CSS.وهذا صحيح تما ًما (في حال كنت بحاجة إلى ذلك).
يمكنك استهداف عناصر HTMLهذه عن طريق إنشاء قاعدة CSSبنفس اسم فئة CSSلتحديدها ،والبادئة بنقطة ( .).فيما يلي مثال لقاعدة
CSSالتي تحدد عنصري HTMLمن المثال أعاله:
{ .green
;border: 1px solid green
}
يحدد مثال قاعدة CSSجميع عناصر HTMLمع تعيين فئة CSSباللون األخضر عليها .الحظ ال .في الجزء األول من محدد CSS
(.األخضر) لقاعدة CSS.يشير هذا إلى المتصفح أن هذا هو محدد فئة ، CSSوأن االسم الموجود بعد .هو اسم فئة CSSالمراد تحديدها.
يمكنك استخدام أي اسم كفئة CSS.ال توجد أسماء فئات CSSمضمنة .استخدم أسماء فئات CSSالتي تبدأ بأحرف -وليس أرقا ًما أو أحرف
خاصة أخرى .أسماء فئات CSSحساسة لحالة األحرف ،لذا فإن GREENليس هو نفس فئة CSSمثل األخضر أو األخضر.
ID SELECTOR
يقوم محدد المعرف بتحديد عنصر HTMLالذي يحتوي على المعرف المحدد .يتم تعيين معرف عنصر HTMLعبر سمة المعرف .هنا مثال:
يمكنك تحديد عنصر HTMLهذا باستخدام محدد المعرف ،وذلك عن طريق بادئة محدد CSSبـ #ثم كتابة معرف عنصر HTML.فيما يلي
مثال يحدد عنصر HTMLأعاله بواسطة معرفه:
{ #myElement
19 | P a g e
يستخدم هذا المثال #لإلشارة إلى أن المحدد هو محدد معرف ،ثم معرف myElementمباشرة بعد #لتحديد المعرف الذي سيتم تحديده.
يتم استخدام محدد سمات CSSلتحديد عناصر HTMLحسب سماتها .انظر إلى HTMLهذا:
><a name="jump-here"></a
الحظ كيف أن العنصرين لهما سمات مختلفة .يحتوي العنصر األول على سمة ، hrefبينما يحتوي العنصر الثاني على سمة اسم.
يمكنك تحديد هذين العنصرين بشكل فردي باستخدام محدد السمات .فيما يلي مثال لمحدد سمات CSS
{ ][href
;font-size: 18px
}
يحدد هذا المثال لقاعدة CSSجميع عناصر HTMLالتي تحتوي على سمة href.وهذا يعني أن العنصر األول في HTMLالموضح سابقًا
سيتم استهدافه بواسطة قاعدة ،CSSلكن العنصر الثاني لن يتم استهدافه.
] [attrNameهو الذي يشكل محدد السمة .داخل األقواس المربعة )] [( تكتب اسم السمة المراد استهدافها.
يمكنك أيضًا تحديد عناصر HTMLبنا ًءّ على قيم سماتها .سأوضح لك بعض الطرق للقيام بذلك في األقسام التالية.
ATTRIBUTE EQUALS
يمكنك تحديد عنصر HTMLبنا ًّء على قيمة السمة الخاصة به مثل هذا:
]"[href="http://jenkov.com
يمكنك إضافة = بعد اسم السمة ،ثم تكتب قيمة السمة المطلوبة .في هذه الحالة أريد تحديد كافة عناصر HTMLالتي تحتوي على سمة href
بالقيمة http://jenkov.com.
الً من استخدام عالمة = بين اسم السمة وقيمة السمة ،اكتب ^= .هنا مثال:
يمكنك تحديد عنصر HTMLبنا ًءّ على ما تبدأ به قيمة السمة .بد ّ
><a href="http://jenkov.com"></a
20 | P a g e
><style
{ ]"[href^="http://
;font-size: 18px
}
></style
سيحدد هذا المثال جميع عناصر HTMLالتي تحتوي على سمة hrefوالتي تبدأ قيمتها بـhttp://.
تبدأ سمة CSSبمحدد رمز اللغة الذي يتم استخدامه لتحديد عناصر HTMLبرمز لغة معين .انظر إلى HTMLهذا:
يمكنك بعد ذلك استخدام سمة CSSالتي تبدأ بمحدد رمز اللغة لتحديد جميع عناصر HTMLبرمز لغة يبدأ بـ ، en-كما يلي:
{ ]"[lang|="en
;font-size: 18px
}
الحظ الجزء |= من المحدد في قاعدة CSSأعاله .يشير هذا الجزء إلى أن قيمة السمة يجب أن تكون إما enأو تبدأ بـ en-في رمز اللغة.
الً من كتابة ^= تكتب =$بين اسم السمة وقيمتها .هنا مثال آخر:
يمكنك أيضًا تحديد عناصر HTMLبنا ًءّ على ما تنتهي به قيمة السمة .بد ّ
><a href="./example.html"></a
><style
{ ]"[href$=".png
;font-size: 18px
}
></style
يحدد هذا المثال لقاعدة CSSجميع عناصر HTMLالتي تحتوي على سمة hrefوالتي تنتهي قيمتها بـ.png.
ATTRIBUTE CONTAINS
21 | P a g e
يتم استخدام سمة CSSالتي تحتوي على محدد لتحديد جميع عناصر HTMLذات سمة معينة تحتوي على السلسلة الفرعية المحددة .فيما يلي
سمة CSSتحتوي على مثال محدد:
{ ]"[href*="google.com
;font-size: 18px
}
يحدد هذا المثال لقاعدة CSSجميع عناصر HTMLمع سمة hrefالتي تحتوي على السلسلة الفرعية google.comفي مكان ما في قيمة
السمة الخاصة بها .وبالتالي ،فإنه سيختار العنصرين األولين من العناصر أدناه ،وليس العنصر الثالث:
><a href="http://courses.com">courses.com</a
><a href="http://tutorials.courses.com">Tutorials</a
><a href="http://google.com">Google</a
تحتوي سمة CSSعلى أداة تحديد الكلمات التي يمكنها تحديد عناصر HTMLذات القيمة التي تحتوي على كلمة معينة .الفرق بين هذا المحدد
والسمة التي تحتوي على المحدد هو أنه بالنسبة لهذا المحدد ،يجب أن تكون السلسلة الفرعية المستهدفة محاطة بمسافات في قيمة السمة .وبعبارة
أخرى ،يجب أن تظهر ككلمة داخل قيمة السمة ،وليس مجرد سلسلة فرعية عشوائية.
><div myattr="iamaprogrammer"></div
يحتوي كال عنصري divعلى مبرمج السلسلة الفرعية داخل قيم سمات myattrالخاصة بهما ،ولكن عنصر divالثاني فقط هو الذي يحتوي
عليه ككلمة مفصولة بمسافات بيضاء .وبالتالي فإن المحدد في قاعدة CSSهذه:.
{ ]"[myattr~="programmer
}
يتم استخدام محدد مجموعة CSSلتجميع محددات متعددة معًا في محدد CSSكبير واحد .وهذا يعني أن جميع العناصر المستهدفة بواسطة أي
من المحددات ستتأثر بقاعدة CSS.فيما يلي مثال لمحدد مجموعةCSS:
22 | P a g e
{ div, p
;font-size : 18px
}
تحدد قاعدة CSSهذه حجم الخط لكل من عناصر divوp.
الفاصلة هي محدد مجموعة ،مما يعني أنه يتم تطبيق قاعدة CSSعلى جميع العناصر المطابقة لواحد (أو أكثر) من المحددات المجمعة معًا.
يتم استخدام محدد CSSالفرعي لتحديد جميع العناصر التي تعتبر أبناء مباشرين لعنصر آخر .فيما يلي مثال لمحدد CSSالفرعي:
{ li>a
;font-size: 18px
}
يحدد هذا المثال جميع العناصر التي هي عناصر فرعية من عناصر li.وبالتالي ،سيتم تحديد العنصر الثاني فقط في HTMLهذا:
><ul
><li><a href="...">This WILL be selected</a></li
></ul
الً لعنصر li.وبالتالي لم يتم تحديده بواسطة محدد الطفل .من ناحية أخرى ،العنصر الثاني هو ابن لعنصر ، liلذلك يتم
العنصر األول ليس طف ّ
تطبيق قاعدة CSSعلى هذا العنصر.
إنه الحرف الذي يحدد المحدد كمحدد فرعي .الحظ الحرف بين liو aفي المحدد في المثال أعاله.
{ ol>li>a
;font-size: 18px
}
يحدد هذا المثال فقط العناصر aالتي هي أبناء لعناصر liوالتي هي أيضًا عناصر أبناء ل olوبالتالي ،ال يتم تطبيق قاعدة CSSعلى العناصر
المتداخلة داخل قائمة غير مرتبة . ul
يتم استخدام محدد CSSالمنحدر لتحديد العناصر المنحدرة من عناصر أخرى .ال يلزم أن تكون العناصر المحددة أبناء مباشرين للسلف المحدد.
يجب فقط أن يكونوا متداخلين داخل السلف في مكان ما .هذه هي الطريقة التي تختلف بها المحددات السليلة عن المحددات الفرعية .انظر إلى
HTMLهذا:
23 | P a g e
يمكنك تحديد جميع العناصر المتداخلة داخل عنصر olباستخدام قاعدة CSSهذه:
{ ol a
;font-size : 18px
}
يتم وضع عالمة على المحدد السليل عبر حرف المسافة .الحظ المسافة بين olو aفي المحدد في قاعدة CSSأعاله .تحدد هذه المساحة أن هذا
المحدد هو محدد سليل ،وأنه يحدد جميع العناصر التي هي من نسل (متداخلة داخل) عناصر ol.ال يهم مدى تداخل aفي أسفل التسلسل الهرمي
للعنصر ،طالما أنه يحتوي على olكسلف في مكان أعلى في التسلسل الهرمي.
يتم استخدام محدد CSSالشقيق المجاور لتحديد عناصر HTMLالتي هي أشقاء متجاورة لبعض عناصر HTMLاألخرى .انظر إلى هذا
: HTML
><body
><h1>Headline</h1
><p
></p
><p
></p
><table
></table
><table
></table
></body
24 | P a g e
جميع عناصر HTMLفي هذا المثال هي عناصر شقيقة ،مما يعني أنها تحتوي على نفس عنصر HTMLاألصلي (عنصر النص) .لكنهم ليسوا
جمي ًعا أشقاء متجاورين .والمقصود بالمجاورة هو أن العناصر تتبع بعضها البعض على الفور ،مع عدم وجود عناصر HTMLأخرى بينهما.
{ p+table
}
يتم استخدام محدد األخوة العام في CSSلتحديد عناصر HTMLالتي لها نفس األصل .على عكس محدد األخوة المجاور ،يختار محدد األخوة
العام جميع العناصر التي يسبقها عنصر آخر (داخل نفس األصل) ،حتى لو لم يكن العنصران متجاورين مباشرة.
><body
><h1>Headline</h1
><p
></p
><p
></p
></body
يمكن استخدام قاعدة CSSباستخدام محدد األخوة العام لتحديد جميع عناصر pالتي يسبقها عنصر pآخر في مكان ما (داخل نفس األصل) ،مثل
هذا:
{ p~p
}
الحظ الحرف ~ الموجود بين حرفي pفي الجزء المحدد من قاعدة CSS.الحرف ~ هو ما يميز هذا المحدد كمحدد عام لألخوة.
لقد عرفت CSSمجموعة من Pseudo Classesالتي يمكنك استخدامها في محددات CSSالخاصة بك .فئة CSSالزائفة هي في الواقع
حالة لعنصر HTML.وبالتالي ،يمكنك تعيين أنماط CSSمختلفة لعناصر HTMLاعتمادًا على حالة عنصر HTML.
أضاف CSS 3.0عددًا ال بأس به من فئات CSSالزائفة الجديدة إلى المعيار .سأغطي كل فئة من فئات CSSالزائفة في األقسام التالية.
25 | P a g e
تقوم هذه األمثلة بتعيين ألوان االرتباط (العنصر) إلى ألوان مختلفة اعتمادًا على حالة االرتباط (الفئة الزائفة).
:FIRST-CHILD, :LAST-CHILD
تحدد الفئة الزائفة :first-child CSSجميع العناصر التي تمثل االبن األول لبعض عناصر HTMLاألصلية .تحدد الفئة الزائفة:last-
child CSSجميع العناصر التي تمثل العنصر الفرعي األخير لبعض عناصر HTMLاألصلية .هنا مثال:
26 | P a g e
><div
><p>First child</p
><p>Second child</p
></div
><style
{ p:first-child
;background-color: #ff00ff
}
{ p:last-child
;background-color: #00ff00
}
></style
تحدد قاعدة CSSاألولى في هذا المثال جميع عناصر pالتي تمثل االبن األول للعناصر األصلية .في هذا المثال سيكون العنصر pمع الجسم
First Child.تم تعيين لون الخلفية لعنصر HTMLهذا على#ff00ff.
تحدد قاعدة CSSالثانية في المثال جميع العناصر pالتي تمثل العنصر الفرعي األخير للعناصر األصلية .في هذا المثال سيكون العنصر pمع
الجسم Second Child
)(:NTH-CHILD
تحدد الفئة الزائفة )( :nth:childالعناصر nمن بعض العناصر األصلية .يمكن أن يكون nكل عنصر ،كل عنصر ثاني ،كل عنصر ثالث
وما إلى ذلك .هنا مثال:
><div
><p>1st child</p
><p>2nd child</p
><p>3rd child</p
><p>4th child</p
><p>5th child</p
><p>6th child</p
></div
><style
{ )p:nth-child(2n
;background-color: #ffff00
}
></style
في هذا المثال ،تحدد قاعدة CSSكل عنصر pثاني داخل العناصر األباء .وهذا يعني كل العناصر pالتي تعتبر اإلبن الثاني واإلبن الرابع
واإلبن السادس.
27 | P a g e
إن الرقم 2في ) p:nth-child(2nهو الذي يحدد أنه سيتم تحديد كل عنصر pزوجي الترتيب داخل العنصر األب
الً من ذلك ،فستختار كل عنصر pترتيبه هو أحد مضاعفات 3داخل العنصر الذي يحتويه.
إذا كتبت ) p:nth-child(3nبد ّ
:FIRST-OF-TYPE, :LAST-OF-TYPE
تختار الفئة :first-of-typeالعناصر التي تعتبر االبن األول من نوعها داخل العنصر األب .تختار الفئة :last-of-typeالعناصر األخيرة
من نوعها داخل العنصر األب .هنا مثال:
><div
><h2>1st h2</h2
><p>1st p</p
><h2>2nd h2</h2
><p>2nd p</p
><h2>3rd h2</h2
><p>3rd p</p
></div
><style
{ p:first-of-type
;background-color: #ffff00
}
{ p:last-of-type
;background-color: #00ff00
}
></style
يحتوي هذا المثال على قاعدتين من قواعد CSS.سيحدد p:first-of-typeعناصر pالتي تمثل العناصر pاألولى لوالديها ،بغض النظر
عن العناصر األخرى التي يحتوي عليها العنصر األب .في هذا المثال العنصر pمع الجسم 1 st p
سيحدد p:last-of-typeالعناصر pالتي تمثل العناصر pاألخيرة لوالديها .في هذا المثال سيكون العنصر pمع النص الذي يحتوي
.3rd p
)(:NTH-OF-TYPE
تحدد الفئة )( nth-of-typeجميع العناصر التي تمثل المرتبة nمن نوعها داخل العنصر األب.
األقواس تحدد ما إذا كانت ستكون كل اول ،كل ثاني ،كل ثالث ...عنصر من نوعه.
28 | P a g e
><div
><h2>1st h2</h2
><p>1st p</p
><p>2nd p</p
><p>3rd p</p
><p>4th p</p
><p>5th p</p
><p>6th p</p
></div
><style
{ )p:nth-of-type(2n
;background-color: #ffff00
}
></style
تحدد قاعدة CSSفي هذا المثال كل عنصر pثاني داخل العناصر االباء .وهكذا فإن العناصر pذات األجسام
><p>2nd p</p
><p>4th p</p
><p>6th p</p
هي التي سيتم تحديدها
)(:NTH-LAST-CHILD
تحدد الفئة )( :nth-last-childالعنصر األخير داخل العنصر الذي يحتويه .إنه يعمل بشكل مشابه للفئة الزائفة )( ، :nth-childباستثناء
أنه يقوم بعد العناصر بشكل عكسي من األخير إلى األول.
)(:NTH-LAST-OF-TYPE
تحدد الفئة )( :nth-last-of-typeالعنصر األخير من نوعه داخل والديه ..إنه يعمل بشكل مشابه للفئة
)( :nth-of-typeباستثناء أنه يقوم بعد العناصر بشكل عكسي من األخير إلى األول.
:ONLY-CHILD
تحدد الفئة الزائفة :only-childكافة العناصر التي تعتبر االبن الوحيد لوالدها.
29 | P a g e
:ONLY-OF-TYPE
تحدد الفئة الزائفة :only-of-typeكافة العناصر التي تعتبر االبن الوحيد من نوعها.
:EMPTY
تحدد الفئة الزائفة :emptyجميع عناصر HTMLالفارغة ،مما يعني أنها ال تحتوي على نص أو عناصر فرعية داخل نصها .فيما يلي مثال:
{ div:empty
}
تحدد قاعدة CSSهذه جميع عناصر divالفارغة.
)(:NOT
تحدد الفئة الزائفة )( :notجميع عناصر HTMLالتي ال تتطابق مع محدد CSSالمعطى كمعلمة (داخل األقواس) للفئة
هنا مثال:
{ )p:not(:last-child
;border-bottom: 1px solid #cccccc
}
تحدد قاعدة CSSهذه جميع عناصر pالتي ليست الطفل األخير لوالديها.
:CHECKED
تحدد الفئة :checkedجميع حقول اإلدخال التي تم تحديدها ،مما يعني جميع مربعات االختيار .إليك مثال :تم التحقق منه:
{ input[type="checkbox"]:checked
}
تحدد قاعدة CSSهذه جميع حقول اإلدخال التي لها سمة نوع المدخل كخانة اختيار ،والتي تم تحديدها.
:ENABLED, :DISABLED
تحدد الفئات :enabledو :disabledعناصر HTMLالتي تم تمكينها أو تعطيلها .ستكون هذه عادّة ً حقول اإلدخال .هنا مثال:
{ input:enabled
;border: 1px solid #6666ff
}
30 | P a g e
{ input:disabled
;border: 1px solid #666666
}
يقوم هذا المثال بتعيين لون حدود أزرق على كافة عناصر اإلدخال الممكنة ،وحد رمادي على جميع حقول اإلدخال المعطلة.
عناصر CSSالزائفة هي عناصر جزئية يمكن تصميمها ،ولكنها ليست في حد ذاتها عناصر HTMLحقيقية.
يتم تحديد العناصر الزائفة في محدد CSSباستخدام نقطتين مزدوجتين ( )::ثم اسم العنصر الزائف .بناء الجملة هذا جديد من CSS 3.0.فيما
يلي مثال لعنصر زائف CSS 3.0:
{ p::first-letter
;font-size : 20px
}
قبل اإلصدار 3.0من ، CSSكان المعيار عبارة عن نقطتين مفردتين ،كما يلي:
{ p:first-letter
;font-size : 20px
}
للتوافق مع اإلصدارات السابقة ،ال تزال عالمة النقطتين المفردة تعمل في معظم المتصفحات ،ولكن ننصحك باستخدام عالمة النقطتين المزدوجتين.
هناك العديد من العناصر الزائفة المختلفة التي يمكنك استخدامها .يتم تناول عناصر CSSالزائفة في األقسام التالية.
::FIRST-LETTER
يمكن استخدام العنصر الزائف :first-letterلتحديد الحرف األول من عناصر HTML.على سبيل المثال ،لتحديد الحرف األول من جميع
عناصر ، pعليك أن تكتب:
{ p::first-letter
;font-size: 20px
}
يقوم هذا المثال بتعيين الحرف األول داخل جميع عناصر pإلى حجم الخط 20بكسل.
::FIRST-LINE
كما هو الحال مع ،:first-letterيمكنك تحديد السطر األول من عنصر ، HTMLوتصميمه بشكل مختلف .السطر األول ليس الجملة األولى.
وهو السطر األفقي األول من النص ،بغض النظر عما إذا كان يشكل جملة كاملة أو أقل.
{ p::first-line
31 | P a g e
;font-size: 19px
}
يقوم هذا المثال بتعيين السطر األول لجميع عناصر pإلى حجم الخط 19بكسل.
::BEFORE, ::AFTER
تتطابق العناصر الزائفة :beforeو :after CSSمع الطفل الظاهري األول واألخير لعنصر HTMLالمحدد .يُستخدم هذا عادّة ً إلدراج
بعض المحتوى اإلضافي (نص أو ) HTMLقبل أو بعد ذلك االبن األخير االفتراضي باستخدام خاصية المحتوى CSS.
يتم استخدام خاصية CSS contentإلنشاء المحتوى وإدراجه في DOMعبر CSS.هنا مثال:
>"<div id="#theId
HTML Text
></div
><style
{ #theId::after
;"content : " - Generated Content
}
></style
يقوم هذا المثال بإدراج المحتوى المحدد في خاصية CSSللمحتوى بعد العنصر التابع األخير (المحتوى األخير) للعنصر الذي يحمل المعرف .
theId
الً من ذلك ،فسيتم إدراج المحتوى الذي تم إنشاؤه قبل المحتوى األول بد ّ
الً من بعد المحتوى إذا كنت قد استخدمت العنصر الزائف :beforeبد ّ
األخير.
::SELECTION
يشير العنصر الزائف ::selectionإلى المحتوى المحدد عندما يختار المستخدم (على سبيل المثال .جزء نصي باستخدام الماوس ).هذا
العنصر الزائف مدعوم في IEو ،Chromeولكن ليس في Firefox.لقد كان جز ًءا من اقتراح ،CSS 3.0لكنه لم يعد جز ًءا من
المواصفات.
{ ::selection
;background-color: #ff00ff
}
يقوم هذا المثال بتعيين لون خلفية النص المحدد إلى اللون األرجواني.
32 | P a g e
CSS INHERITANCE
يمكن لعناصر HTMLأن ترث أنماط CSSمن العناصر األصلية .وهذا ما يسمى وراثة . CSS
><div
><p
This text inherits the font-size of the parent div element.
></p
></div
><style
{ div
;font-family: Arial
}
></style
في هذا المثال ،يحتوي عنصر divعلى خاصية عائلة الخطوط المعينة على . Arial
يتم توريث خاصية CSSهذه من للعنصر pالمتداخل ،لذلك سيتم أيضًا تعيين عائلة خطوطه الى Arial
طا من أسالف بعيدين أيضًا ،وليس فقط من آبائهم .انظر إلى هذا المثال:
يمكن لعناصر HTMLأن ترث أنما ً
><body
><div
><p
This text inherits the font-size of the parent div element.
></p
></div
><style
{ body
;font-family: Arial
}
></style
></body
في هذا المثال ،تم تعيين عائلة خطوط خاصية CSSعلى عنصر .bodyيتم بعد ذلك توريث خاصية CSSهذه للعنصرين divوp.
ليست كل األنماط موروثة من عنصر األب أو السلف .بشكل عام ،يتم توريث األنماط التي تنطبق على النص ،في حين ال يتم توريث الحدود
والهوامش والفواصل واألنماط المشابهة.
33 | P a g e
34 | P a g e
CSS PRECEDENCE
عندما تستهدف قواعد CSSمتعددة نفس عناصر ، HTMLوتقوم قواعد CSSهذه بتعيين بعض خصائص CSSنفسها ،ما هي األنماط التي
سيتم تطبيقها في نهاية المطاف على عنصر HTML؟ بمعنى آخر ،ما هي قواعد CSSالتي لها األسبقية؟
تعد أسبقية CSSمشكلة يمكن لمصممي ومطوري الويب قضاء وقت طويل في حلها .من المؤكد أن فهم أسبقية CSSيجعل المعركة أسهل.
قبل القفز إلى قواعد أسبقية ، CSSدعونا نلقي نظرة على مثال:
><head
><style
{ body
;font-family: Arial
;font-size: 14px
}
{ p
;font-size: 16px
}
{ .logo
;font-family: Helvetica
font-size ;: 20px
}
></style
></head
><body
>"<div id="header
><span class="logo">Super Co</span
></div
>"<div id="body
><p
This is the body of my page
></p
></div
35 | P a g e
></body
يحتوي هذا المثال على ثالث قواعد CSS.تقوم جميع قواعد CSSالثالثة بتعيين حجم خط خاصية ، CSSوتقوم اثنتين من قواعد CSS
بتعيين عائلة خطوط خاصية CSS.يتم توريث قاعدة CSSالخاصة بعنصر النص بواسطة كل من العنصر divو spanو p.باإلضافة إلى
ذلك ،يحتوي عنصر االمتداد على قاعدة CSSتستهدفه من خالل فئة CSSالخاصة به) ، (.logoويحتوي العنصر pعلى قاعدة CSS
تستهدف جميع عناصر p.ما هي األنماط التي سيتم تطبيقها في نهاية المطاف على عناصر االمتداد وp؟
عندما يحتاج المتصفح إلى تحديد األنماط التي سيتم تطبيقها على عنصر HTMLمعين ،فإنه يستخدم مجموعة من قواعد أسبقية CSS.في ضوء
هذه القواعد ،يمكن للمتصفح تحديد األنماط التي سيتم تطبيقها .القواعد هي:
الحظ أن أسبقية CSSتحدث على مستوى خاصية CSS.وبالتالي ،إذا استهدفت قاعدتان CSSنفس عنصر ،HTMLوكانت لقاعدة CSS
األولى األسبقية على الثانية ،فإن جميع خصائص CSSالمحددة في قاعدة CSSاألولى لها األسبقية على خصائص CSSالمعلنة في القاعدة
الثانية .ومع ذلك ،إذا كانت قاعدة CSSالثانية تحتوي على خصائص CSSغير محددة في قاعدة CSSاألولى ،فسيتم تطبيقها أيضًا .يتم دمج
قواعد CSS -وال تتغلب على بعضها البعض.
!IMPORTANT
إذا كنت تريد أن يكون لخاصية CSSمعينة األسبقية على كافة قواعد CSSاألخرى التي تقوم بتعيين نفس خاصية CSSلنفس عناصر
،HTMLفيمكنك إضافة التعليمة !importantبعد خاصية CSSعندما تعلن عنها .التعليمة الهامة لها األسبقية األعلى بين كافة عوامل
األسبقية .هنا مثال مهم:
><style
{ div
;font-family: Arial
;font-size: 16px !important
}
{ .specialText
36 | P a g e
;font-size: 18px
}
></style
>"<div class="specialText
This is special text.
></div
يحتوي هذا المثال على قاعدتين من قواعد CSSتستهدفان عنصرdiv.
عادّة ً ،تتمتع قاعدة CSSمع محدد فئة CSSبخصوصية أعلى من قاعدة CSSمع محدد عنصر ،لذا عادّة ً ما تكون لقاعدة CSSالثانية
) }(.specialText {...األسبقية على قاعدة CSSاألولى (div {... } ).وهذا يعني أن قاعدة .specialTextستحدد حجم الخط
لعنصر divعلى 18بكسل.
نظرا ألن قاعدة div {...} CSSتحتوي على التعليمة !importantبعد خاصية CSSلحجم الخط ،فإن إعالن خاصية
ومع ذلكً ،
CSSهذا له األسبقية على جميع التعريفات األخرى دون التعليمة !importantالتي تستهدف نفس عنصرHTML.
في بعض األحيان ال يتمكن المتصفح من تحديد قاعدة CSSأو أسبقية الخاصية بنا ًّء على .!importantإما ألنه ال تحتوي إعالنات
خصائص CSSعلى التعليمة ،!importantأو ألن إعالنات خصائص CSSالمتعددة تحتوي على التعليمات !importantلنفس
خاصية CSS
في هذه الحاالت ،يلجأ المتصفح إلى استخدام أولوية محددات قواعد CSSلتحديد خصائص CSSالتي لها األولوية.
تعتمد خصوصية قاعدة CSSعلى محددها .كلما كان محدد CSSأكثر تحديدًا ،زادت أسبقية إعالنات خصائص CSSداخل قاعدة CSSالتي
تمتلك المحدد.
بشكل عام ،كلما كان محدد CSSأكثر تحديدًا (فريدًا) يستهدف عنصر ، HTMLكلما زادت خصوصيته.
أنواع محددات CSSالمختلفة لها خصوصية مختلفة .يُقصد بالخصوصية مدى تحديد محدد CSSالذي يستهدف العنصر الذي يتم تحديده .فيما
يلي قائمة بخصوصية محدد :CSS
37 | P a g e
وصف محددCSS
أقلها أولوية -حيث أن النمط الموروث يستهدف أب العنصر ،وليس عنصر HTMLنفسه. األنماط الموروثة
أقل خصوصية من جميع المحددات المستهدفة مباشرة *
خصوصية أعلى من المحدد الكلي * واألنماط الموروثة. عنصر
خصوصية أعلى من محدد العنصر السمة
أعلى من المحددات الخاصة بالسمات والعناصر والمحددات العامة. خصوصية الفئة
أعلى من محدد الفئة. خصوصية المعرف
تحصل على خصوصية المحددات المجمعة. المحددات المجمعة
داخل سمة النمط .خصوصية أقوى من المعرفات. تعيين خصائص CSSمباشرةعلى العنصر
إن فهم الخصوصية من هذه القائمة وحدها أمر صعب ،لذا اسمحوا لي أن أتابع ذلك ببعض األمثلة .أوالًّ ،انظر إلى مثال HTML + CSS
><body
><style
body } ;{ font-size: 10px
div } ;{ font-size: 11px
} ;[myattr] { font-size: 12px
.aText } ;{ font-size: 13px
#myId } ;{ font-size: 14px
></style
38 | P a g e
></body
يحتوي هذا المثال على 5قواعد CSSمختلفة تستهدف جميعها واحدًا أو أكثر من عناصر divفي المثال.
تستهدف قاعدة CSSاألولى عنصر النص .يتم توريث األنماط المعينة لعنصر النص في قاعدة CSSهذه بواسطة عناصر div.خصائص
CSSالمعينة في قاعدة CSSهذه سيكون لها أدنى أسبقية لعناصر ، divحيث ال يتم تعيينها مباشرة على عناصر ، divبل على العنصر
األصلي ،عنصر النص.
تستهدف قاعدة CSSالثانية عناصر div.تعد قاعدة CSSهذه أكثر تحديدًا لعناصر divالتي ورثتها األنماط من عنصر النص.
تستهدف قاعدة CSSالثالثة كافة عناصر HTMLباستخدام سمة تسمى myattr.هذا أكثر تحديدًا من جميع عناصر div.وبالتالي ،فإن
عنصر divالذي يحتوي على السمة myattrيتم تطبيق قاعدة CSSهذه عليه .إذا قمت بتعيين قيمة سمة في محدد السمات ،لكانت أكثر
تحديدًا.
تستهدف قاعدة CSSالرابعة جميع عناصر HTMLذات فئة CSSالمسماة aText.يعد محدد فئة CSSأكثر تحديدًا من محدد عنصر
divومحدد السمة] ، [myattrلذلك سيتم تطبيق قاعدة CSSهذه على عنصر divالذي يحتوي على فئةCSS aText.
تستهدف قاعدة CSSالخامسة عنصر HTMLبالمعرف myId.يعتبر محدد المعرف أكثر تحديدًا من محدد العناصر ومحدد السمات ومحدد
الفئة ،لذا فإن عنصر divالذي يحمل المعرف myIdيتم تطبيق قاعدة CSSهذه عليه.
اآلن يجب أن تفهم خصوصية المحددات المختلفة .لكن األسبقية يمكن أن تصبح أكثر تعقيدًا .عندما تقوم بدمج أنواع محددات ،CSSيتم دمج
خصوصياتها أيضًا .على سبيل المثال ،انظر إلى قواعد CSSالتالية:
} { div
]div[myattr
} { div[myattr].aText
قاعدة CSSاألولى هي مجرد محدد العناصر القياسي .ال شيء جديد هنا .أما المحدد الثاني فهو عبارة عن مزيج من محدد العناصر ومحدد
السمات .سيكون هذا المحدد أكثر تحديدًا من محدد السمات بمفرده .تجمع قاعدة CSSالثالثة بين محدد العناصر ومحدد السمات ومحدد الفئة .يعد
محدد CSSهذا أكثر تحديدًا من محدد الفئة بحد ذاته.
بمجرد البدء في دمج أنواع محددات CSSفي قواعد CSSالخاصة بك ،ستحتاج إلى فحص أسبقية تلك المحددات بعناية أكبر ،أو التأكد من عدم
وجود تداخل بينها في العناصر المستهدفة ،من أجل تحقيق التصميم المطلوب.
39 | P a g e
يعتبر كل عنصر HTMLيتم تقديمه بمثابة مربع .يحتوي الصندوق على أربعة أجزاء (أو طبقات).
يمكن التحكم في الهامش والحدود والحشوة عبر خصائص CSS.وقد تم شرح كل من هذه الخصائص في هذه النصوص:
يمكنك التحكم في عرض وارتفاع مربع عنصر HTMLباستخدام خصائص العرض واالرتفاع في CSS.يمكن تحديد العرض واالرتفاع
باستخدام أي من وحدات CSSالقياسية .هنا مثال:
{ #theDiv
width ;: 300px
;height : 200px
}
تقوم قاعدة CSSهذه بتعيين العرض إلى 300بكسل واالرتفاع إلى 200بكسل لعنصر HTMLبالمعرفtheDiv.
تقوم خصائص العرض واالرتفاع في CSSبتعيين العرض واالرتفاع لمربع المحتوى الخاص بعنصر HTML.وهذا يعني أن العرض الكامل
واالرتفاع الذي يتناوله عنصر HTMLقد يكون أكبر .بالنسبة للعرض واالرتفاع ،يجب عليك إضافة حجم الحشو والحدود والهوامش.
إذا كان عنصر HTMLيحتوي على حشوة 5بكسل ،وحدود 1بكسل وهامش 10بكسل (جميعها من جميع الجوانب) ،فإن إجمالي العرض
واالرتفاع لعنصر HTMLسيكون:
يمكنك تغيير كيفية قيام المتصفحات بحساب حجم عنصر HTMLباستخدام خاصية تغيير حجم الصندوق في box-sizing CSS.خاصية
تغيير حجم box-sizingالصندوق في CSSجديدة في CSS 3.0
في ، Firefoxسيتعين عليك استخدام البادئة ،-moz-لذلك تسمى الخاصية -moz-box-sizing.ما عليك سوى تعيين خصائص
content-box
border-box
inherit
قيمة مربع المحتوى content-boxهي القيمة االفتراضية .وهذا يجعل خصائص العرض واالرتفاع في CSSتحدد عرض وارتفاع مربع
المحتوى وحده.
تعني قيمة الوراثة أن عنصر HTMLيرث قيمة خاصية CSSهذه من عنصر HTMLاألصلي الخاص به.
قيمة مربع الحدود تجعل المتصفح يفسر خصائص العرض واالرتفاع في CSSعلى أنها عرض وارتفاع مربع الحدود .مربع الحدود هو كل شيء
داخل حدود عنصر ، HTMLبما في ذلك الحدود نفسها.
عند استخدام ، box-sizing : border-boxسيتم حساب عرض وارتفاع مربع المحتوى على النحو التالي:
عرض مربع المحتوى = عرض مربع الحدود -عرض الحدود -عرض الحشو
ارتفاع مربع المحتوى = ارتفاع مربع الحدود -ارتفاع الحدود -ارتفاع الحشو
إذا كان عرض عنصر ، 200 HTMLوارتفاعه ،180حشو ب 5بكسل وحدود 1بكسل (جميعها من جميع الجوانب) ،فسيكون عرض
وارتفاع مربع المحتوى كما يلي:
سيشغل 200 × 180 HTMLبكسل (باإلضافة إلى الهوامش أيضًا ،إذا كان العنصر يحتوي على أي منها) والتي تم تعيينها بواسطة خصائص
العرض واالرتفاع في CSS.سيشغل مربع المحتوى 168 × 188بكسل فقط ألنه يتم طرح الحدود والحشوة من عرض وارتفاع مربع الحدود
للحصول على عرض وارتفاع مربع المحتوى.
42 | P a g e
CSS MARGIN
كما هو موضح في النص الخاص بنموذج مربع ،CSSيمكن أن يحتوي عنصر HTMLعلى هوامش حوله.
هامِ ش
أعلى الهامش
الهامش األيمن
الهامش السفلي
الهامش األيسر
margin
margin-top
margin-right
margin-bottom
margin-left
تقوم كل من خصائص CSSهذه بتعيين الهامش حول عنصر HTMLباستخدام أي من وحدات CSSالقياسية (pxو emوما إلى ذلك ).
وهنا بعض األمثلة:
تقوم كل من خصائص CSSهذه بتعيين الهامش حول عنصر HTMLباستخدام أي من وحدات CSSالقياسية pxو emوما إلى ذلك
{ #divOne
;margin : 20px
}
{ #divTwo
;margin : 20px 10px 20px 10px
}
{ #divThree
margin-top ;: 20px
margin-right ;: 10px
;margin-bottom : 20px
margin-left ;: 10px
}
43 | P a g e
يقوم أول أمثلة هامش CSSهذه بتعيين الهامش على الجوانب األربعة لعنصر HTMLبالمعرف divOneإلى 20بكسل .ويتم ذلك عن طريق
تعيين القيمة 20بكسل لخاصية CSSالخاصة بالهامش.
المثال الثاني يحدد الهامش العلوي بـ 20بكسل ،والهامش األيمن بـ 10بكسل ،والهامش السفلي بـ 20بكسل ،والهامش األيسر بـ 10بكسل .يتم
ذلك عن طريق تعيين خاصية الهامش CSSعلى px 10px 20px 10px. 20تحدد القيم األربع الهوامش العلوية واليمنى والسفلى واليسار
بشكل فردي.
المثال الثالث يحدد الهامش العلوي بـ 20بكسل ،والهامش األيمن بـ 10بكسل ،والهامش السفلي بـ 20بكسل ،والهامش األيسر بـ 10بكسل .
ويتم ذلك عن طريق تعيين كل من خصائص CSSاألربعة هامش أعلى ،هامش يمين ،هامش أسفل ،هامش يسار بشكل منفصل.
44 | P a g e
CSS PADDING
كما هو موضح في النص الخاص بنموذج مربع ، CSSيمكن أن يحتوي عنصر HTMLعلى حشوة حوله.
يتم تحديد الحشو لعنصر HTMLباستخدام خصائص الحشو CSS.خصائص الحشو CSSهي:
حشوة
أعلى الحشو
الحشو الصحيح
أسفل الحشو
الحشو لليسار
padding
padding-top
padding-right
padding-bottom
padding-left
يتم تحديد قيم خاصية الحشو في CSSبنفس طريقة تحديد الهوامش .فيما يلي ثالثة أمثلة لقواعد CSSتحدد المساحة المتروكة لبعض عناصر
:HTML
{ #divOne
;padding : 20px
}
{ #divTwo
;padding : 20px 10px 20px 10px
}
{ #divThree
padding-top ;: 20px
padding-right ;: 10px
;padding-bottom : 20px
padding-left ;: 10px
}
يقوم أول أمثلة الحشو في CSSبتعيين المساحة المتروكة على الجوانب األربعة لعنصر HTMLبالمعرف divOneإلى 20بكسل .ويتم ذلك
عن طريق تعيين القيمة 20بكسل لخاصية الحشوCSS.
المثال الثاني يعين الحشو العلوي إلى 20بكسل ،والحشو األيمن إلى 10بكسل ،والحشو السفلي إلى 20بكسل ،والحشو األيسر إلى 10بكسل.
يتم ذلك عن طريق ضبط خاصية الحشو CSSعلى px 10px 20px 10px. 20تحدد القيم األربع الحشو العلوي واليمين والسفلي واليسار
بشكل فردي.
45 | P a g e
المثال الثالث يعين الحشو العلوي إلى 20بكسل ،والحشو األيمن إلى 10بكسل ،والحشو السفلي إلى 20بكسل ،والحشو األيسر إلى 10بكسل.
يتم ذلك عن طريق تعيين كل من خصائص CSSاألربع :الحشو العلوي ،والحشو األيمن ،والحشو السفلي ،والحشو اليساري بشكل منفصل.
46 | P a g e
CSS BORDER
، ومتقطعة، يمكن أن تكون الحدود صلبة. حدود حولهHTML يمكن أن يكون لعنصر، CSSكما هو موضح في النص الخاص بنموذج مربع
. ويمكنك حتى استخدام الصور في حدودك، ولها زوايا مستديرة،وثالثية األبعاد
. يغطي هذا النص خصائص الحدود هذه. المتنوعةCSS يتم تحديد الحدود باستخدام خصائص حدود
border-width
border-style
border-color
border-top
border-right
border-bottom
border-left
border-top-width
border-top-style
border-top-color
border-right-width
border-right-style
border-right-color
border-bottom-width
border-bottom-style
border-bottom-color
border-left-width
border-left-style
border-left-color
border-radius
border-top-left-radius
border-top-right-radius
border-bottom-left-radius
border-bottom-right-radius
BORDER
تتكون قيمة.) ويسار، أسفل، يمين، وهذا يعني جميع الحدود األربعة (أعلى، HTML بتعيين الحدود حول عنصرborder CSS تقوم الخاصية
: من ثالثة أجزاءborder CSS خاصية
عرض الحدود
نمط الحدود
لون الحدود
47 | P a g e
ويتم تحديد كل جزء من هذه األجزاء عند تعيين خاصية الحدود ،مفصولة بمسافة .هنا مثال:
{ #theDiv
;border : 1px solid #000000
}
القيمة األولى هي px 1وهو عرض الحدود .تقوم هذه القيمة بتعيين الحد حول عنصر HTMLبعرض 1بكسل .يتم تحديد عروض الحدود
باستخدام أي من وحدات CSSالصالحة.
طا (غير متقطع ،بدون تأثير ثالثي األبعاد وما القيمة الثانية صلبة وهي نمط الحدود .تقوم هذه القيمة بتعيين الحدود لتكون ثابتة ،مما يعني خ ً
طا بسي ً
إلى ذلك) .هناك العديد من األساليب التي يمكنك االختيار من بينها .سيتم تغطية هذه في وقت الحق.
القيمة الثالثة هي 000000#وهو لون الحدود .تقوم هذه القيمة بتعيين لون الحدود إلى اللون األسود .يتم تحديد ألوان الحدود باستخدام تنسيقات
ألوانCSS.
BORDER-WIDTH
يمكن استخدام خاصية border-width CSSلتعيين عرض الحدود حول عنصر HTML.يتم تحديد قيم خاصية Border-width
CSSباستخدام أي من وحدات CSSالصالحة .هنا مثال:
{ #theDiv
;border-width: 2px
}
يقوم هذا المثال لقاعدة CSSبتعيين عرض الحدود إلى 2بكسل لعنصر HTMLالمحدد بواسطة قاعدة CSS
BORDER-STYLE
يمكن استخدام خاصية Border-style CSSلتعيين نمط الحدود الخاص بالحدود حول عنصر HTML.القيم الصالحة التي يمكنك استخدامها
لخاصية CSSذات النمط الحدودي هي:
صلب
منقط
متقطع
مزدوج
أخدود
حافة
أقحم
البداية
ال أحد
مختفي
ال شيء والقيم المخفية لها نفس التأثير .ال يظهر أي حدود.
48 | P a g e
فيما يلي بعض األمثلة المرئية لكيفية ظهور أنماط الحدود هذه عند عرضها:
الحظ أنه تم ضبط عرض الحدود على 2بكسل لألمثلة الثالثة األولى ،و 6بكسل لألمثلة األخيرة .تتطلب بعض أنماط الحدود عرض حدود أكبر من
2بكسل قبل أن تتمكن من رؤية تأثيرها فعليًا.
BORDER-COLOR
الخاصية border-color CSSتحدد لون الحدود .يمكن لخاصية Border-color CSSقبول أي لون CSSصالح .فيما يلي مثال على
لون الحدود :
تعمل خصائص ، border-topو ، border-rightو ، border-bottomو border-leftبنفس الطريقة التي تعمل بها خاصية
،borderباستثناء أن خصائص CSSهذه تقوم فقط بتكوين جزء واحد من الحد (الحد العلوي ،أو األيسر ،أو السفلي ،أو األيمن) .يتم تكوين
هذه الخصائص بنفس الطريقة .هنا مثال:
{ #theDiv
;border-left: 1px solid #000000
}
يقوم هذا المثال بتعيين الحد األيسر لعنصر HTMLالمحدد إلى حد أسود خالص بعرض 1بكسل .إليك كيف يبدو ذلك عند عرضه في المتصفح:
تعمل خصائص CSSاألخيرة للحدود ،border-top-widthو ، border-top-styleو ،border-top-colorوما إلى ذلك بنفس
الطريقة التي تعمل بها خصائص ،border-widthو ، border-styleو ، border-colorباستثناء هذه الحدود األخيرة يتم تعيين
الخصائص فقط على جزء من الحدود (أعلى أو يمين أو أسفل أو يسار).
هنا مثال:
{ #theDiv
;border-top-width: 2px
;border-top-style: dashed
;border-top-color: #cccccc
}
يقوم هذا المثال بتعيين الحد العلوي للعنصر المحدد إلى حد رمادي متقطع بعرض 4بكسل .إليك كيف يبدو ذلك عند عرضه في المتصفح:
BORDER-RADIUS
خاصية Border-radius CSSجديدة في CSS 3.0.تُستخدم الخاصية border-radiusفي CSSإلنشاء زوايا مستديرة من
الحدود على عناصر HTML.قبل ذلك ،كانت الزوايا الدائرية ذات نصف القطر الحدودي في عناصر HTMLممكنة فقط باستخدام الجداول
والصور ،وكانت ثقيلة في HTMLوثقيلة للتنزيل للمتصفح .لحسن الحظ ،فإن خاصية Border-radius CSSتنقذنا من هذا البؤس.
{ #theDiv
border ;: 1px solid #cccccc
;border-radius : 10px
padding ;: 10px
}
إليك كيف يبدو عنصر divمع أنماط CSSالمطبقة:
كما ترون ،أصبح عنصر divاآلن ذو زوايا مستديرة .نصف قطر االستدارة هو 10بكسل ألنني قمت بتعيين 10بكسل كنصف قطر (قيمة) في
إعالن خاصية CSSلنصف القطر الحدودي.
تعمل الخاصية border-radiusفي CSSأيضًا مع ألوان الخلفية ،حتى لو لم يكن لعنصر HTMLأي حدود .فيما يلي مثال لنصف قطر
الحدود ولون الخلفية:
{ #theDiv
;background-color: #66ff66
50 | P a g e
;border-radius : 20px
padding ;: 10px
}
وإليك ما يبدو عليه نصف قطر الحدود ولون الخلفية عند العرض:
يمكنك تحديد نصف قطر التقريب عموديًا وأفقيًا .بهذه الطريقة يمكنك جعل زوايا الصندوق بيضاوية الشكل ً
بدالّ من الدائرية .هنا مثال:
{ #theDiv
border ;: 1px solid #cccccc
;border-radius : 20px / 10px
padding ;: 20px
}
إليك ما تبدو عليه الحدود عند عرضها:
كما ترون ،يكون التقريب أطول أفقيًا ( 20بكسل) منه عموديًا ( 10بكسل).
يمكنك أيضًا ضبط تقريب كل زاوية على حدة عن طريق تحديد أربع قيم لخاصية Border-radiusفي CSS.هنا مثال:
{ #theDiv
border ;: 1px solid #cccccc
;border-radius : 20px 15px 10px 5px
padding ;: 20px
}
ترتيب الزوايا هو :أعلى اليسار ،أعلى اليمين ،أسفل اليمين ،أسفل اليسار .وهو مشابه لترتيب الحدود في خاصية CSSالخاصة بالحدود (أعلى،
يمين ،أسفل ،يسار(
كما ترون ،كل ركن من أركان الحدود له نصف قطر تقريب مختلف.
يمكنك أيضًا ضبط التقريب أفقيًا وعموديًا لكل زاوية مثل هذا:
تما ًما كما هو الحال مع خاصية ، Borderتحتوي خاصية border-radiusعلى مجموعة من الخصائص الفرعية التي يمكنها تعيين نصف
قطر كل زاوية على حدة .هذه الخصائص الفرعية هي:
الحدود-أعلى-يسار-نصف القطر
الحدود-أعلى-يمين-نصف القطر
نصف القطر الحدودي السفلي األيمن
نصف القطر الحدودي السفلي األيسر
border-top-left-radius
border-top-right-radius
border-bottom-right-radius
border-bottom-left-radius
إن بناء الجملة الخاص بتعيين نصف قطر التقريب للزاوية هو نفسه بالنسبة لنصف قطر الحدود .وفيما يلي بعض األمثلة على ذلك:
{ #theDiv
border ;: 1px solid #cccccc
border-top-left-radius ;: 40px
;border-top-right-radius : 40px / 20px
}
كما ترون ،يمكنك إنشاء زوايا دائرية وبيضاوية باستخدام هذه الخصائص الفرعية أيضًا.
BORDER IMAGES
يمكنك CSS 3من استخدام الصور داخل حدودك عبر خصائص CSSللصور الحدودية .خصائص CSSللصورة الحدودية هي:
باإلضافة إلى خصائص CSSللصور الحدودية هذه ،سيتعين عليك أيضًا ضبط نمط الحدود على ( Solidلكي يعمل في Firefox).سيتعين
عليك أيضًا ضبط عرض الحدود على أي عرض تريده لحدودك (سيتم تغيير حجم صورة الحدود لتناسب عرض الحدود) .تذكر أنه يمكنك ضبط
عرض الحدود بشكل فردي لكل حد.
border-image-source
border-image-slice
52 | P a g e
border-image-repeat
باإلضافة إلى خصائص CSSللصور الحدودية هذه ،سيتعين عليك أيضًا ضبط نمط الحدود على ( Solidلكي يعمل في .)Firefoxسيتعين عليك
أيضًا ضبط عرض الحدود على أي عرض تريده لحدودك (سيتم تغيير حجم صورة الحدود لتناسب عرض الحدود) .تذكر أنه يمكنك ضبط عرض
الحدود بشكل فردي لكل حد.
BORDER-IMAGE-SOURCE
يتم استخدام الخاصية border-image-source CSSلإلشارة إلى الصورة الستخدامها كصورة حدودية .فيما يلي مثال لمصدر صورة
الحدود:
;)'border-image-source: url('/images/css/border-image.png
BORDER-IMAGE-SLICE
الخاصية border-image-sliceفي CSSيمكن أن تأخذ ما بين قيمة واحدة وأربع قيم .هذه القيم من واحد إلى أربع هي إحداثيات
الشريحة .معنى إحداثيات الشريحة y2 ،x2 ،y1 ، x1موضحة في هذه الصورة:
إذا قمت بتحديد أقل من 4إحداثيات ،فسيقوم المتصفح باستقراء اإلحداثيات األربعة جميعها من القيم التي تحددها .على سبيل المثال ،إذا كتبت 50
فقط ،فسيفترض المتصفح أنك تقصد 50بكسل من كل حافة من حواف الصورة .إذا كتبت ،50100يفترض المتصفح أنك تعني 50بكسل من
الحافة اليسرى واليمنى ،و 100بكسل من الحافة العلوية والسفلية للصورة.
فيما يلي مثال حي لصورة الحدود .إذا قمت بتغيير حجم نافذة المتصفح ،يمكنك رؤية كيفية توسيع صورة الحدود لتناسب عنصر divالذي تم
تطبيقه عليه.
><style
#withBorderImage1 {
;)'border-image-source: url('/images/css/border-image.png
;border-image-slice: 70
;border-image-repeat: stretch
;height : 300px
;border-width: 70px
;border-style: solid
}
></style
>"<div id="withBorderImage1
Here is a <code>div</code> with border image.
></div
الحظ كيف يتم تعيين شريحة الصورة الحدودية على قيمة واحدة فقط .70 :وهذا يعني أنه يجب تقطيع الصورة بمقدار 70بكسل من كل حافة من
حواف الصورة.
54 | P a g e
نظرا ألننا نستخدم شرائح بعرض 70بكسل من الصورة الحدودية ،فيجب ضبط عرض
الحظ أيضًا كيفية ضبط عرض الحدود على 70بكسلً .
الحدود على 70بكسل ،حتى نتمكن من عرض الحدود بشكل صحيح .إذا حددت قيمة 35بكسل لعرض الحدود ،فسيتم تغيير حجم صورة الحدود
من 70بكسل إلى 35بكسل قبل عرضها كحدود.
وأخيرا ،الحظ كيف تم ضبط نمط الحدود على الصلبة .بدون هذا اإلعداد ،لن يتم عرض صورة الحدود في Firefoxفي وقت كتابة هذا التقرير
ً
BORDER-IMAGE-REPEAT
تُستخدم الخاصية border-image-repeat CSSلتحديد كيفية تكرار أجزاء الصورة الحدودية داخل حدود عنصر ، HTMLإذا كانت
أبعاد صورة الحدود وأبعاد عنصر HTMLغير متماثلة.
تمتد
يكرر
دائري
فضاء
stretch
repeat
round
space
يعني امتداد القيمة أنه سيتم تمديد/قياس الشريحة لتالئم عرض أو ارتفاع الحد الذي تم تطبيقه عليه.
تكرار القيمة يعني أنه سيتم تكرار الشريحة لتالئم عرض أو ارتفاع الحد الذي تم تطبيقه عليه.
تعني جولة القيمة أنه سيتم تكرار الشريحة لعدد صحيح من المرات .سيتم تمديد الشرائح المتكررة لتتناسب تما ًما مع الحدود التي تم تطبيقها عليها.
CSS UNITS
عند تحديد أبعاد العناصر وأحجام الخطوط وعرض الحدود وما إلى ذلك في ، CSSستستخدم عادّة ً نوعًا ما من الوحدات لتحديد كيفية تفسير البعد
الرقمي .على سبيل المثال:
{ p
;font-size: 18px
}
يستخدم هذا المثال بكسل (بكسل) كوحدة لخاصية حجم الخط .وهذا يعني أن 18بكسل يعني 18بكسل.
يحتوي CSSعلى مجموعة من الوحدات المختلفة التي يمكنك استخدامها حسب احتياجاتك .فيما يلي قائمة بوحدات CSSالمتوفرة:
بكسل
النسبة المئوية لبعد العنصر األصلي (أو بُعد نافذة المتصفح لعنصر النص) ،على سبيل المثال%25 .
يعتمد البعد على حجم الخط القياسي في المتصفح = 1.0em ( .الحجم القياسي).
سم سنتيمترا
ملم ملليمتر
بالبوصة
نظرا ألن المعيار السابق لشاشات الكمبيوتر كان 72نقطة في البوصة).
نقطة نقطة -تساوي 72/1بوصة ( ً
كمبيوتر بيكا -يساوي 12نقطة.
56 | P a g e
CSS COLORS
هناك العديد من خصائص CSSالتي تحدد األلوان ألجزاء من عناصر HTML.على سبيل المثال ،اللون ،لون الخلفية ،الحدود وما إلى ذلك.
يمكنك أيضًا استخدام ألوان CSSلتعيين لون عناصر SVGوهي عناصر رسومية متجهة يتم عرضها في المتصفح .في هذه الحالة ،يمكنك
استخدام CSSلتعيين ألوان الحدود والتعبئة لعناصر SVG.تم شرح كيفية استخدام CSSمع عناصر SVGفي البرنامج التعليمي الخاص بي
حول SVGوCSS.
تقوم جميع قواعد CSSهذه بتعيين لون خلفية عنصر HTMLإلى اللون األحمر ولكنها تفعل ذلك باستخدام رمز لون محدد مسبقًا ورمز لون
سداسي عشري ورمز لون RGBورمز لون RGBAورمز لونHSL
يحتوي CSSعلى مجموعة من األلوان المحددة مسبقًا مثل األحمر واألخضر وما إلى ذلك .فيما يلي بعض رموز األلوان األكثر شيوعًا:
أحمر
أخضر
أزرق
أسود
أبيض
رمادي
أرجواني
أرجواني
البنفسجي
red
green
blue
57 | P a g e
black
white
gray
magenta
purple
violet
هناك ألوان محددة مسب ًقا أكثر من هذه ،ولكن على الرغم من أن رموز األلوان المحددة مسبقًا قد تبدو مفيدة ،إال أنها ً
نادرا ما تلبي احتياجاتك.
سيتطلب نظام األلوان لموقع الويب الخاص بك في أغلب األحيان ألوانًا ال تحتوي على رموز محددة مسبقًا .لذلك ستستخدم في أغلب األحيان رمز
األلوان السداسي العشري أوRGB / RGBA.
RGBالست عشري
يعد تدوين ألوان RGBالسداسي العشري هو أقدم تدوين ألوان (مع رموز األلوان المحددة مسب ًقا) .يقوم تدوين ألوان RGBالعشري بتقسيم أي
فارق بسيط في اللون إلى ثالثة مكونات :األحمر واألخضر واألزرق .ومن هنا تأتي األحرف الثالثة RGB.يتكون أي لون من كمية معينة من
اللون األحمر واألخضر واألزرق.
عند تحديد لون RGBسداسي عشري ،فإنك تكتب قيم األلوان األحمر واألخضر واألزرق بأرقام سداسية عشرية .يتكون رقم مكون اللون السداسي
العشري من رقم يتراوح بين 0و ،255ولكن يتم تحديده باستخدام رقمين سداسي عشري.
;#ff00ff
يتكون هذا الرمز من ثالث قيم لمكونات األلوان :األحمر) ، (ffواألخضر) ، (00واألزرق (ff).وبالتالي فإن هذا اللون هو مزيج من اللون
األحمر واألزرق ،مما ينتج عنه اللون األرجواني.
الحظ #أمام رمز اللون .يشير هذا الحرف إلى المتصفح بأن هذا رمز لوني سداسي عشري.
RGB COLORS
الً من
تنسيق األلوان RGBيشبه إلى حد كبير تنسيق األلوان السداسي العشري .يتم تحديد كل لون كمزيج بين األحمر واألخضر واألزرق .بد ّ
استخدام األرقام السداسية العشرية ،يمكنك استخدام األرقام العشرية بين 0و .255فيما يلي مثال لأللوانRGB:
;)rgb(255, 0, 255
يضبط هذا المثال فارق اللون األحمر (األول) على ،255وفارق اللون األخضر (الثاني) على ،0وفارق اللون األزرق (الثالث) على .255
وسينتج عن ذلك نفس اللون األرجواني مثل اللون المدرج في مثال اللون السداسي العشري. .
RGBA COLORS
ألوان RGBAتعني األحمر واألخضر واألزرق وألفا .جزء RGBهو نفسه الموجود في ألوان RGB.تحدد ( Aقناة ألفا) عتامة اللون .يمكن
تعيين قيمة قناة ألفا بين ( 0شفافة بالكامل) و( 1.0معتمة بالكامل) .فيما يلي مثال لأللوانRGBA
يقوم هذا المثال بتعيين مكون اللون األحمر (األول) على ،255ومكون اللون األخضر (الثاني) على ،0ومكون اللون األزرق (الثالث) على
،255وقيمة ألفا (الرابعة) على 1.0مما يعني معت ًما تما ًما.
يمكن تحديد لون شبه شفاف/شبه معتم عن طريق ضبط قيمة ألفا على .0.5
عندما يكون اللون شفافًا أو شفافًا جزئيًا ،فإن كل ما يتم عرضه تحت وحدات البكسل التي تحتوي على هذا اللون سيكون مرئيًا من خالل هذه
البكسالت .وبالتالي ،إذا كان لديك عنصر divيطفو فوق عناصر HTMLاألخرى ،وكان عنصر divهذا يستخدم لون خلفية شبه شفاف،
فستكون عناصر HTMLالموجودة أسفل عنصر divمرئية جزئيًا من خالل عنصرdiv.
HSL COLORS
تعد ألوان ( HSLدرجة اللون والتشبع والخفة) جديدة في CSS 3.0.إذا كنت مصم ًما ،فقد تكون معتادًا على العمل بألوان HSLأكثر من
ألوان RGB.يمكنك تحديد ألوان HSLمثل هذا:
يخبر رمز hslالمتصفح أنك تحدد لون HSL.المكونات الثالثة الموجودة داخل األقواس هي قيم Lightness ،Saturation ، Hueبهذا
الترتيب
لن أشرح كيف يعمل مقياس األلوان HSL.يمكنك العثور على ذلك عبر اإلنترنت.
59 | P a g e
يحتوي CSSعلى مجموعة من خصائص CSSالتي تستهدف بشكل خاص عناصر نص HTML.سأشرح في هذا النص كيفية عمل
خصائص CSSهذه.
FONT-FAMILY
يتم استخدام خاصية Font-family CSSلتحديد عائلة الخطوط المستخدمة بواسطة عنصر HTMLالذي يحتوي على نص .هنا مثال:
{ p
;font-family: Arial
}
تقوم قاعدة CSSهذه بتعيين خاصية عائلة الخطوط على Arialلجميع عناصر p.وهذا يعني أن النص المعروض داخل عناصر pيتم عرضه
باستخدام الخطArial.
{ p
;font-family: Arial, Helvetica
}
في حالة أن المتصفح ال يعرف عائلة الخطوط األولى ، Arialفسيقوم المتصفح باالطالع على عائلة الخطوط التالية في القائمة وهي
Helveticaلمعرفة ما إذا كان المتصفح يدعم ذلك .يمكنك إضافة أي عدد تريده من عائالت الخطوط في القائمة ،مفصولة بفواصل.
خطوط Serifهي جميع الخطوط التي تحتوي الحروف الرسومية (األحرف) على 'أقدام '.على سبيل المثالTimes New Roman ،هو
خط Serif.تُستخدم خطوط Serifعادّة ً للنص العادي عند طباعته في الكتب .يتم تقديم القسم أدناه بخطSerif:
خطوط Sans-Serifهي جميع الخطوط التي ال تحتوي على حروف رسومية .على سبيل المثالArial ،هو خط Sans-Serif.غالبًا ما
تُستخدم خطوط Sans-serifللعناوين الرئيسية والنص العادي عند عرضها على الشاشة .يتم تقديم القسم أدناه بخط Sans-Serif
إذا نظرت إلى حرف Tفي بداية النصين ،يمكنك رؤية 'القدم' وغياب القدم بوضوح.
60 | P a g e
خطوط Monospaceهي خطوط يكون فيها كل حرف رسومي (حرف /حرف) متساويًا في العرض .وبالتالي فإن iأو lيشغل نفس المساحة
أفقيًا مثل m.تُستخدم خطوط Monospaceعادّة ً في التعليمات البرمجية .يتم تقديم القسم أدناه بخط Monospace
يمكنك استخدام القيم Serifو Sans-Serifو Monospaceكقيمة لخاصية CSSلمجموعة الخطوط .سيختار المتصفح بعد ذلك خ ً
طا
مطابقًا مثل ) Times (Serifأو Arialأو ) Helvetica (Sans-Serifأو ) Courier (Monospaceكعائلة خطوط .وهنا
بعض األمثلة:
{ p
;font-family: Arial, Sans-Serif
}
{ div
;font-family: Times, Serif
}
{ code
;font-family: Courier, Monospace
}
تحدد كل قاعدة من قواعد CSSهذه قيمتين لخاصية CSSالخاصة بمجموعة الخطوط .القيمة األولى هي اسم الخط ،والقيمة الثانية هي فئة الخط.
الً من ذلك ،أي خط Serifأو Sans-Serifأو إذا كان الخط األول غير مدعوم ،فسيختار المتصفح خ ً
طا يتوافق مع فئة الخط بد ّ
Monospace.
FONT-FAMILY VALUES
فيما يلي قائمة بالقيم شائعة االستخدام لخاصية CSSالخاصة بمجموعة الخطوط .هذه ليست الخطوط الوحيدة الممكنة ،ولكن كما ذكرنا ،فهي شائعة
االستخدام للغاية.
FONT-SIZE
{ p
;font-size: 20px
}
61 | P a g e
تقوم قاعدة CSSهذه بتعيين حجم الخط إلى 20بكسل .يمكنك تحديد حجم الخط في أي من وحدات CSSالقياسية .حجم الخط القياسي في
المتصفحات هو 16بكسل في وقت كتابة هذا التقرير ،أي إذا لم تحدد حجم الخط ،فسيستخدم المتصفح حجم خط 16بكسل.
وحدة أخرى مفيدة لحجم الخط هي em.وحدة emهي وحدة نسبيةem 1 .يساوي حجم الخط القياسي ،والذي كان وقت كتابة هذا المقال 16
بكسل .يمكنك بعد ذلك تحديد أحجام الخطوط مثل em 0.8أو em 1.2أو em 2أو جزء آخر .يمكن أن يكون استخدام وحدة emفكرة جيدة
إذا كان سيتم عرض موقع الويب الخاص بك بشكل معقول عبر أحجام مختلفة للشاشات .في هذه الحالة ،يمكن للمتصفح اختيار حجم الخط القياسي،
وما عليك سوى تحديد أحجام خطوط موقع الويب الخاص بك نسبيًا لحجم الخط القياسي للجهاز المحدد .هنا مثال:
{ h2
;font-size : 1.4em
}
{ p
;font-size : 1em
}
يقوم هذا المثال بتعيين حجم خط عنصر HTML h2إلى em 1.4وهو 1.4ضعف حجم الخط القياسي .يقوم المثال أيضًا بتعيين حجم خط
العنصر pعلى em 1وهو حجم الخط القياسي للمتصفح المحدد على الجهاز المحدد.
COLOR
تقوم الخاصية color CSSبتعيين لون النص المعروض داخل عنصر HTML.هنا مثال اللون:
{ p
;color : #333333
}
يقوم مثال قاعدة CSSبتعيين لون النص المعروض داخل جميع عناصر pإلى اللون الرمادي الداكن .فيما يلي بعض األمثلة الحية:
FONT-STYLE
يمكن لخاصية نمط الخط في CSSضبط نمط الخط على واحدة من أربع قيم مختلفة:
normal
italic
oblique
inherit
{ p
;font-style: normal
62 | P a g e
}
{ p#emphasized
;font-style: italic
}
{ p#ob
;font-style: oblique
}
تقوم أول قواعد CSSالثالث هذه بتعيين نمط الخط لجميع عناصر pإلى الوضع الطبيعي .تقوم قاعدة CSSالثانية بتعيين نمط الخط للعنصر
pمع التركيز على المعرف بخط مائل .تقوم قاعدة CSSالثالثة بتعيين نمط الخط للعنصر pمع وضع المعرف obبشكل مائل.
فيما يلي ثالثة أمثلة حية توضح كيف تبدو أنماط الخطوط الثالثة المختلفة:
تختلف األنماط المائلة والمائلة فقط إذا كان الخط يحتوي على نسخة مائلة ومائلة .إذا لم يكن األمر كذلك ،فسيقوم المتصفح بإنشاء إصدار يعتمد على
الخط العادي ،وفي هذه الحالة قد يبدو النمطان متشابهين جدًا.
تعني قيمة نمط الخط األخيرة الموروثة أن عنصر HTMLيرث خاصية نمط الخط الخاصة به من عنصر HTMLاألصلي الخاص به.
FONT-WEIGHT
تقوم الخاصية Font-weight CSSبتعيين سمك النص المعروض داخل عنصر HTML.يمكن أن تأخذ الخاصية Font-weight
CSSالقيم التالية:
63 | P a g e
في أغلب األحيان يتم استخدام القيمة boldفقط .القيمة العادية هي القيمة االفتراضية ،لذلك إذا لم يتم تحديد قيمة لوزن الخط ،فسيتم استخدام هذه
القيمة.
فيما يلي مثال لوزن الخط :بالخط العريض:
{ span#fat
;font-weight: bold
}
تقوم قاعدة CSSهذه بتعيين خاصية CSSلوزن الخط إلى غامق لعنصر االمتداد ذو المعرف الدهني .إليك كيفية ظهور النص الغامق في
المتصفح:
TEXT-TRANSFORM
يمكن استخدام خاصية تحويل النص في CSSلتحويل كل النص المعروض داخل عنصر HTMLإلى أحرف صغيرة أو أحرف كبيرة أو الحرف
األول فقط من كل كلمة إلى أحرف كبيرة .القيم الثالث الصالحة لخاصية CSSلتحويل النص هي:
lowercase
uppercase
capitalize
{ span#lc
;text-transform: lowercase
}
{ span#uc
;text-transform: uppercase
}
{ span#cap
;text-transform: capitalize
}
تعمل قواعد CSSالثالثة هذه على تحويل نص عناصر االمتداد الثالثة .تقوم قاعدة CSSاألولى بتحويل جميع األحرف إلى أحرف صغيرة عند
عرضها .تقوم قاعدة CSSالثانية بتحويل كافة األحرف إلى أحرف كبيرة عند تقديمها .تقوم قاعدة CSSالثالثة بتحويل جميع الكلمات لتبدأ بحرف
كبير .إليك كيفية ظهور عناصر االمتداد هذه عند عرضها في المتصفح:
تحتوي جميع عناصر االمتداد على نفس النص ،لكن الحظ كيف يتم عرضها بشكل مختلف (يحتوي كل سطر على عنصر امتداد واحد).
64 | P a g e
spanعلى نفس النص ،لكن الحظ كيف يتم عرضها بشكل مختلف (يحتوي كل سطر على عنصر امتداد واحد). تحتوي جميع عناصر
FONT-VARIANT
normal
small-caps
{ p#special
;font-variant: small-caps
}
تقوم قاعدة CSSهذه بتعيين خاصية CSSلمتغير الخط إلى أحرف صغيرة للعنصر pالذي له المعرف الخاص .إليك كيفية ظهور النص
المعروض بأحرف صغيرة:
TEXT-DECORATION
يمكن استخدام خاصية زخرفة النص في CSSلتسطير النص أو تسطيره أو تشطيبه .يمكن أن تأخذ الخاصية text-decoration CSS
إحدى القيم التالية:
none
underline
overline
line-through
blink
{ span#none
;text-decoration: none
}
{ span#under
;text-decoration: underline
}
65 | P a g e
{ span#over
;text-decoration: overline
}
{ span#through
;text-decoration: overline
}
{ span#blnk
;text-decoration: blink
}
فيما يلي خمسة أقسام من النص توضح تأثير إعدادات زخرفة النص text-decorationأعاله:
ملحوظة :ليست كل المتصفحات تدعم الوميض .blinkوحتى لو فعلوا ذلك ،فيجب عليك توخي الحذر عند جعل الكثير من األشياء تومض
وتتحرك على موقع الويب الخاص بك .يمكن بسهولة أن تصبح مشتتة ومزعجة للغاية.
LETTER-SPACING
يتم استخدام خاصية letter-spacingفي CSSلزيادة أو تقليل التباعد بين الحروف عند عرض النص .ستؤدي القيمة الموجبة إلى زيادة
تباعد األحرف بمقدار مقارنة بتباعد األحرف العادي .ستؤدي القيمة السالبة إلى تقليل تباعد األحرف بمقدار مقارنة بتباعد األحرف العادي .فيما يلي
مثاالن:
{ span#more
;letter-spacing : 2px
}
{ span#less
;letter-spacing : -2px
}
فيما يلي ثالث جمل توضح لك الفرق بين النص العادي والقيمة الموجبة والقيمة السالبة:
LINE-HEIGHT
تقوم الخاصية line-height CSSبتعيين ارتفاع أسطر النص عند عرضها .هنا مثال:
{ p
;line-height: 2.0em
}
66 | P a g e
تذكر أن ارتفاع السطر موروث ،لذا إذا قمت بتحديد ارتفاع السطر داخل عنصر HTMLالذي يرث ارتفاع السطر بالفعل ،فقد يتم ضرب استخدام
النسبة المئوية في ارتفاع السطر في النسبة المئوية الموروثة.
TEXT-ALIGN
يمكن لخاصية محاذاة النص في CSSمحاذاة النص داخل عنصر HTMLإلى اليسار أو اليمين أو المركز .يمكن لخاصية محاذاة النص في
CSSأن تأخذ القيم التالية:
left
right
center
justify
القيمة المتبقية سوف تترك محاذاة النص .القيمة الصحيحة ستؤدي إلى محاذاة النص إلى اليمين .سيقوم مركز القيمة بتوسيط النص داخل عنصر
HTML.سيحاول ضبط القيمة جعل الجانبين األيسر واأليمن متساويين على النص ،بحيث يظهر النص كمستطيل مستقيم من النص.
{ p#alignleft
;text-align: left
}
{ p#alignright
;text-align: right
}
{ p#aligncenter
;text-align: center
}
فيما يلي بعض األمثلة على الفقرات التي توضح كيفية ظهور النص باستخدام إعدادات محاذاة النص الثالثة:
TEXT-INDENT
يمكن استخدام خاصية text-indentفي CSSلوضع مسافة بادئة للسطر األول من الفقرة ،تما ًما كما تفعل الفقرات في العديد من الكتب
المطبوعة .يمكن لخاصية CSSذات المسافة البادئة للنص أن تأخذ رق ًما كقيمة .على سبيل المثالpx 32 ،أو em. 2يمكنك أيضًا استخدام قيمة
67 | P a g e
،%وفي هذه الحالة يتم تفسير %على أنها نسبة مئوية من عرض الفقرة.
{ p#indent
;text-indent: 2em
}
تقوم قاعدة CSSهذه بتعيين مسافة بادئة للنص في CSSإلى 2emمما يعني أن السطر األول من النص في الفقرة المحددة سيتم وضع مسافة
بادئة له بنفس المسافة مثل ،2emوهو ضعف حجم الخط القياسي .فيما يلي مثال حي يوضح فقرة مع مسافة بادئة للسطر األول:
TEXT-SHADOW
تتيح لك خاصية text-shadow CSSإضافة ظل إلى النص .تأخذ خاصية text-shadowأربع معلمات :إزاحة الظل xو yمن النص،
ونصف قطر التمويه الذي يوضح مدى حدة أو نعومة الظل ،ولون ظل النص .هنا مثال:
{ p.withShadow
;text-shadow : 5px 10px 0px #999999
}
يقوم هذا المثال بتعيين ظل النص على جميع عناصر pالتي تحتوي على فئة CSSمع الظل .يقع الظل على بعد 5بكسل إلى اليمين و 10بكسل
أسفل النص .يبلغ نصف قطر التمويه 0بكسل مما يعني أن الظل حاد قدر اإلمكان .لون الظل هو #999999وهو لون رمادي .إليك كيفية
ظهور ظل النص عند تطبيقه على النص:
إليك كيف يبدو النص نفسه مع ظل بنصف قطر تمويه يبلغ 5بكسل:
68 | P a g e
يمكن أن يكون لديك ظالل نصية متعددة .ما عليك سوى فصل مجموعات المعلمات بفاصلة .هنا مثال:
{ p.withShadows
;text-shadow : 5px 10px 2px #ff0000, -3px 6px 5px #0000ff
}
يحدد هذا المثال ظلين للنص في مواقع مختلفة ،ونصف قطر التمويه واأللوان .وهذا يجعل األمر يبدو كما لو أن هناك مصدرين مختلفين للضوء في
النص .إليك كيفية ظهور النص مع تطبيق ظالل النص هذه:
REALISTIC SHADOW
عادّة ً ال يكون الظل القريب من النص غير واضح مثل الظل البعيد عن النص .عادّة ً ما يشير الظل البعيد عن النص إلى مصدر ضوء بعيد أيضًا عن
النص.
عادّة ً ما يشير الظل القريب من النص إلى أن السطح السفلي قريب (أو أن الضوء قريب ،أو كليهما) .غالبًا ما يكون الظل القريب أغمق من الظل
البعيد ،ألن الضوء األقل يمكن أن يدخل بين الشكل والسطح األساسي.
يحتوي CSSعلى مجموعة من الخصائص التي تستهدف بشكل خاص تصميم قوائم HTML.بواسطة قوائم HTMLأعني عناصر ulو ol.
سأغطي في هذا النص ماهية خصائص CSSلتصميم القائمة هذه ،وما يمكنك فعله بها.
LIST-STYLE-TYPE
تتحكم الخاصية list-style-typeفي CSSفي التعداد النقطي الذي يستخدمه عنصر ،ulوالترقيم الذي يستخدمه عنصر ol.تتناول األقسام
الً من عنصر ulوol.
التالية ك ّ
LIST-STYLE-TYPE : UL
القرص
دائرة
مربع
{ ul
;list-style-type: disc
}
يقوم هذا المثال بتعيين خاصية CSSمن نوع list-style-typeعلى القرص لجميع عناصرul.
إليك كيفية ظهور القيم المحتملة (القرص والدائرة والمربع) عند تطبيقها على عنصرul:
><ul
><li style="list-style-type: disc;"><code>disc</code></li
><li style="list-style-type: circle;"><code>circle</code></li
><li style="list-style-type: square;"><code>square</code></li
></ul
ستبدو النتيجة كالمثال أعاله الذي يوضح أنواع التعداد النقطي الثالثة المختلفة (القرص والدائرة والمربع).
LIST-STYLE-TYPE : OL
70 | P a g e
يمكن أيضًا استخدام خاصية list-style-typeفي CSSلتصميم عناصر .olبدالً من التعداد النقطي ،يمكنك تعيين نوع نظام الترقيم الذي
سيستخدمه عنصر .olالقيم الصالحة لخاصية نوع نمط القائمة لعناصر olهي:
decimal
decimal-leading-zero
upper-alpha
lower-alpha
upper-roman
lower-roman
lower-greek
فيما يلي قاعدة CSSتحدد نوع نمط القائمة على ألفا العلوي:
{ ol
;list-style-type : upper-alpha
}
توضح هذه القوائم التالية كيف يبدو نظام األرقام مع القيم الستة المختلفة المحتملة.
71 | P a g e
LIST-STYLE-POSITION
يتم استخدام خاصية list-style-position CSSلتعيين موضع التعداد النقطي أو األرقام .الخاصية list-style-positionفي CSS
يمكن أن تأخذ إحدى القيمتين:
inside
outside
{ ul
;list-style-position: outside
}
فيما يلي قائمتان غير مرتبة -واحدة مع ضبط موضع نمط القائمة على الداخل واألخرى على الخارج..
72 | P a g e
الحظ كيف تعرض القيمة الموجودة بالداخل الرمز النقطي كجزء من نص عنصر القائمة .عندما يمتد نص عنصر القائمة على أكثر من سطر واحد،
يلتف النص ويبدأ أسفل الرمز النقطي.
مع avlueخارج يتم تقديم الرمز النقطي بشكل منفصل عن النص .يلتف النص ويبدأ أسفل النص ،وليس الرمز النقطي ،عندما يمتد النص إلى
عدة أسطر.
PADDING
liلعناصر CSSيمكنك زيادة المسافة بين التعداد النقطي أو الرقم والنص الخاص بعنصر القائمة المقابل عن طريق تعيين خصائص الحشو هنا
مثال
><ul
><li style="padding-left: 20px">With padding</li
><li>Without padding</li
></ul
يحتوي على موضع نمط القائمة مضبو ً
طا على الخارج (أو olأو ulيضبط هذا المثال المساحة المتروكة لليسار على 20بكسل .إذا كان عنصر
ulسيزيد المسافة بين التعداد النقطي/الرقم والنص .إليك كيف يبدو ذلك على عنصر liلعنصر padding-leftمحذوفًا) ،فإن تعيين خاصية
المباشر
المعينة في الداخل ،فسيتم تطبيق الحشو قبل الرمز list-style-position CSSيحتوي على خاصية olأو ulومع ذلك ،إذا كان عنصر
على يسار الرمز liيتم بعد ذلك عرض الحشوة المضبوطة على عنصر li.النقطي/الرقم ،ألن الرمز النقطي/الرقم يعتبر معروضًا داخل عنصر
:المباشر ulالنقطي .إليك كيف يبدو ذلك على عنصر
{ ul>li
padding-left ;: 25px
background-image ;)': url('/images/arrow-right.png
;background-position : 5px 5px
background-repeat ;: no-repeat
}
73 | P a g e
يمكنك قراءة المزيد حول إعداد صور الخلفية لعناصر HTMLفي البرنامج التعليمي الخاص بي حول إعداد صور الخلفية في
يمكنك قراءة المزيد حول إعداد صور الخلفية لعناصر HTMLفي البرنامج التعليمي الخاص بي حول إعداد صور الخلفية
DISPLAY
يمكنك استخدام خاصية العرض CSSلتغيير كيفية عرض القوائم .من خالل ضبط عرض عناصر liعلى السطر ،سيتم عرض عناصر القائمة
الً من قائمة رأسية .فيما يلي عرض القائمة :مثال مضمن:
كقائمة أفقية بد ّ
{ ul>li
;display: inline
}
إليك كيف تبدو القائمة عند تقديمها:
الحظ كيف يتم اآلن عرض عناصر القائمة 'واحد' و'اثنان' و'ثالثة' على نفس الخط األفقي ،بد ّ
الً من عرض كل عنصر على السطر الخاص به.
الحظ أيضًا أنه ال يتم عرض الرموز النقطية .هذا هو السلوك االفتراضي عندما يعرض المتصفح قائمة باستخدام العرض :مضمن على عناصرli.
الً من القيمة المضمنة .بعد ذلك يمكنك ضبط عرض وارتفاع العناصر li (display: inlineيؤدي
يمكنك أيضًا استخدام قيمة الكتلة المضمنة بد ّ
عادّة ً إلى تعطيل التحكم في عرض العناصر وارتفاعها) .هنا مثال:
{ ul>li
;display: inline-block
}
إليك كيفية ظهور القائمة عند عرضها مع العرض :يتم تطبيق الكتلة المضمنة على عناصر liالخاصة بها:
يبدو مشاب ًها تما ًما للعرض :مضمن ،كما هو متوقع ،ولكنه يمنحك التحكم في عرض وارتفاع عناصر liباستخدام خصائص العرض واالرتفاع في
CSS.فيما يلي مثال يضبط عرض كل عنصر liعلى 100بكسل:
74 | P a g e
يحتوي CSSعلى مجموعة من خصائص CSSالتي يمكن أن تساعدك في تصميم جداول HTML.يمكنك CSSمن معالجة الهامش والحدود
والحشو في خاليا الجدول ومحاذاة النص وصور الخلفية والمزيد .سيشرح هذا النص جميع خصائص CSSهذه.
يمكنك ضبط عرض وارتفاع الجدول باستخدام خصائص العرض واالرتفاع في CSSكما هو موضح في البرنامج التعليمي الخاص بي حول
نموذج مربعCSS.
يمكنك أيضًا ضبط عرض وارتفاع خاليا الجدول الفردية عناصر tdوth
MARGINS
يمكنك تعيين الهوامش على جدول HTMLتما ًما كما هو الحال مع عنصر divأو pأو أي عنصر آخر .تمت تغطية الهوامش في البرنامج
التعليمي الخاص بي حول هوامشCSS.
BORDERS
يمكنك تعيين الحدود على جدول HTMLتما ًما كما هو الحال في عناصر HTMLاألخرى .تمت تغطية الحدود في البرنامج التعليمي الخاص بي
حول الحدود في CSS.
يمكنك تعيين حدود لعنصر الجدول بأكمله ،أو يمكنك تعيين حدود لخاليا الجدول( العنصران thو td).يمكنك أيضًا تعيين الحدود العلوية واليمنى
والسفلية واليسرى للجدول بأكمله ولخاليا الجدول الفردية.
ال يمكنك تعيين المساحة المتروكة مباشرة على جدول ، HTMLولكن يمكنك تعيين المساحة المتروكة على خاليا الجدول .هذا يعني أنه يمكنك
ضبط الحشو على العنصرين thوtd.
يمكنك تعيين الحشو بشكل منفصل لخاليا الجدول الفردية ،ويمكنك أيضًا تعيين الحشو العلوي واليمين والسفلي واليسار للخاليا بشكل فردي.
تم تناول إعداد الحشو عبر CSSفي النص الخاص حول الحشو فيCSS.
TEXT-ALIGN
تتيح لك خاصية محاذاة النص في CSSإمكانية ضبط كيفية محاذاة النص الموجود داخل خاليا الجدول .يمكن تطبيق خاصية محاذاة النص على
الجدول ككل (عنصر الجدول) ،أو على خاليا الجدول الفردية (عناصر tdوth).
start
end
left
right
center
justify
75 | P a g e
قيمة البداية هي نفسها القيمة اليسرى إذا كان وضع عرض المتصفح في الوضع من اليسار إلى اليمين .إذا كان وضع العرض من اليمين إلى اليسار،
فإن البداية تكون هي نفسها من اليمين.
القيمة النهائية هي نفسها القيمة اليمنى إذا كان وضع عرض المتصفح من اليسار إلى اليمين .إذا كان وضع العرض من اليمين إلى اليسار ،فإن
النهاية هي نفسها التي على اليسار.
تقوم القيمة اليسرى بمحاذاة النص باتجاه الحافة اليسرى لخلية الجدول.
تعمل القيمة الصحيحة على محاذاة النص باتجاه الحافة اليمنى لخلية الجدول.
تعمل قيمة الضبط على زيادة التباعد بين األحرف والكلمات حتى تتم محاذاة الحافتين اليسرى واليمنى للنص مع الحافة اليسرى واليمنى لخلية
الجدول.
فيما يلي جدول يوضح لك كيفية تأثير كل هذه القيم على محاذاة النص داخل خاليا الجدول:
VERTICAL-ALIGN
تتيح لك خاصية المحاذاة العمودية في CSSإمكانية تحديد كيفية محاذاة النص عموديًا داخل خاليا الجدول .يمكنك إما تعيين خاصية المحاذاة
الرأسية لـ CSSللجدول بأكمله ،أو لخاليا الجدول بشكل فردي.
top
middle
bottom
في الواقع ،يمكن لخاصية CSSذات المحاذاة العمودية أن تأخذ قي ًما أكثر من هذه ،ولكن هذه هي األكثر استخدا ًما مع الجداول .يمكن أيضًا استخدام
خاصية المحاذاة الرأسية في CSSمع عناصر HTMLأخرى غير الجداول.
76 | P a g e
BACKGROUND-IMAGE
BORDER-SPACING
عندما تقوم بتعيين حدود على خاليا الجدول ،عادّة ً ما تحتوي خاليا الجدول على مسافة صغيرة بينها .هذا هو ما يمكنك التحكم فيه باستخدام سمة
تباعد الخاليا لعنصر الجدول .يمكنك أيضًا التحكم في هذه المساحة باستخدام خاصية border-spacingفيCSS.
{ table.noSpace
;border-spacing : 0px
;border : 1px solid #cccccc
}
{ table.noSpace td
;border : 1px solid #cccccc
}
{ table.withSpace
;border-spacing : 10px
;border : 1px solid #cccccc
}
{ table.withSpace td
;border : 1px solid #cccccc
}
إليك كيف سيبدو الجدوالن إذا تم تقديمهما مع تباعد الحدود أعاله باإلضافة إلى حد على الجدول وخاليا الجدول:
77 | P a g e
BORDER-COLLAPSE
إذا نظرت إلى الجدولين الموضحين في القسم السابق (حول تباعد الحدود) ستالحظ وجود حدين بين خاليا الجدول .وجود حد واحد حول كل خلية
في الجدول يعني أنه سيكون هناك حدين بين خاليا الجدول .يمكن لخاصية border-collapseالتحكم في رسم حد أو حدين بين خاليا الجدول.
separate
collapse
القيمة المنفصلة هي القيمة االفتراضية .تعني هذه القيمة أنه يجب رسم الحدود الموجودة على خاليا الجدول كما لو كانت خاليا الجدول عبارة عن
عناصر HTMLمنفصلة.
تعني قيمة االنهيار أنه يجب طي الحدود بين خاليا الجدول .وبالتالي ،سيتم رسم حد واحد فقط حتى لو كانت كافة خاليا الجدول لها حدود .فيما يلي
مثاالن النهيار الحدود:
{ table.withSpace
border-spacing ;: 10px
border ;: 1px solid #cccccc
border-collapse : separate
}
{ table.withSpace td
border ;: 1px solid #cccccc
}
{ table.withSpace
border-spacing ;: 10px
border ;: 1px solid #cccccc
border-collapse : separate
78 | P a g e
}
{ table.withSpace td
border ;: 1px solid #cccccc
}
إليك ما يبدو عليه الجدوالن عند عرضهما باستخدام أنماط CSSالمطبقة أعاله:
يمكنك تصميم روابط ( HTMLعناصر) باستخدام خصائص CSSومحددات CSS.يمكن أن تكون روابط HTMLإما روابط نصية أو روابط
صور أو روابط كتلة( كتلة HTML).فيما يلي ثالثة أمثلة لرابط HTML
>"<a href="/next-page.html
><div
>"<img src="next.png
Next page
></div
></a
العنصر األول هو رابط نصي ألن نص العنصر يحتوي فقط على نص.
العنصر الثاني هو رابط صورة ألن نص العنصر يحتوي فقط على عنصرimg.
العنصر الثالث هو رابط كتلة ألن نص العنصر يحتوي على كتلة HTML.لم تكن الروابط المحظورة مدعومة دائ ًما بواسطة المتصفحات ،ولكنها
كانت تعمل في معظم المتصفحات (إن لم يكن كلها) حتى وقت كتابة هذا التقرير.
يمكن تصميم الروابط النصية باستخدام جميع خصائص تصميم النص في CSS.وهذا يعني أنه يمكنك تعيين عائلة الخط وحجم الخط ووزن الخط
واللون وزخرفة النص وما إلى ذلك للروابط النصية .فيما يلي مثال على تصميم رابط نصي CSS
><style
{ a
;font-family: Helvetica
font-size: ;1em
;font-weight: bold
color ;: #000099
;text-decoration: none
}
></style
تقوم قاعدة CSSهذه بتعيين عائلة الخطوط إلى ، Helveticaوحجم الخط إلى ،em1وتعيين وزن الخط إلى غامق ،واللون إلى
( 000099#أزرق داكن) ،وإزالة التسطير االفتراضي ،لجميع العناصر.
عندما يحتوي الرابط على صورة ،يمكنك تصميم إما العنصر aأو العنصر img.يمكن تصميم الصور باستخدام أي من خصائص CSS
القياسية لتصميم الصور.
عندما تقوم بتصميم روابط كتلية ،فإنك عادّة ً ما تقوم بتصميم HTMLداخل العنصر ، aوليس العنصر aنفسه.
يمكنك تصميم رابط ليبدو كزر .يمكنك القيام بذلك عن طريق تعيين خصائص CSSللحدود ولون الخلفية واللون والحشو ،باإلضافة إلى خصائص
النص .هنا مثال:
{ a.greenButton
;border: 2px solid #006600
;background-color: #009900
80 | P a g e
color: #ffffff;
text-decoration: none;
margin : 20px;
padding: 10px 20px 10px 20px;
display: inline-block;
}
a.greenButton:hover {
border: 2px solid #009900;
background-color: #00cc00;
}
: فيما يلي مثال على الكودCSS. فيborder-radius يمكنك أيضًا جعل الزوايا مستديرة باستخدام خاصية
a.greenButtonRound {
border: 2px solid #006600;
border-radius: 5px;
background-color: #009900;
color: #ffffff;
font-weight: bold;
text-decoration: none;
margin : 20px;
padding: 10px 20px 10px 20px;
display: inline-block;
}
a.greenButtonRound:hover {
border: 2px solid #009900;
background-color: #00cc00;
}
:)وإليك ما يبدو عليه الزر مع الزوايا الدائرية (والنص الغامق
81 | P a g e
82 | P a g e
عنصرا دالليًا،
ً يمكنك تصميم نماذج HTMLباستخدام CSS.أعني بذلك أنه يمكنك تصميم حقول النموذج الفردية .يشبه عنصر نموذج HTML
لذا ليس من المنطقي تصميمه.
تمت تغطية نماذج HTMLفي البرنامجين التعليميين اآلخرين حول حقول نماذج HTML 4وحقول نماذجHTML 5.
حقل النموذج األكثر شيوعًا للنمط هو عنصر اإلدخال .في الواقعً ،
نظرا ألنه يمكن استخدام عنصر اإلدخال إلنشاء عدة أنواع مختلفة من حقول
الً من ذلك ،ستقوم بتصميم حقول اإلدخال المختلفة بشكل مختلف .على سبيل
اإلدخال ،فلن تقوم عادّة ً بتصميم جميع عناصر اإلدخال بشكل متساوّ .بد ّ
المثال:
{ ]'input[type='text
;border : 1px solid #cccccc
}
{ ]'input[type='submit
;border : 1px solid #00ff00
}
يعين هذا المثال حدًا رماديًا حول حقول إدخال النص ،وحدًا أخضر حول أزرار اإلرسال.
ستشرح األقسام التالية بمزيد من التفصيل كيفية تصميم حقول النماذج المختلفة.
TEXT FIELDS
الحقول النصية هي عناصر إدخال مع تعيين سمة النوع على النص .إليك كيف يبدو HTML
>"<input type="text
وإليك كيفية ظهور حقل النص عند عرضه في المتصفح (ال تعرض جميع المتصفحات الحقول النصية بنفس الطريقة):
لتحديد نمط جميع الحقول النصية (> " )<input type="textتحتاج إلى استخدام مجموعة من محددات CSSللعناصر والسمات .هنا
مثال:
{ ]'input[type='text
/* set CSS properties here*/
}
من الممكن ضبط نمط الحدود لحقل النص .يعين هذا المثال حدًا رماديًا حول جميع حقول النص:
83 | P a g e
input[type='text'] {
border : 3px solid #cccccc;
}
:إليك كيف يبدو ذلك عند تطبيقه على حقل نصي
input[type='text'] {
border : 1px solid #cccccc;
background-color : #e0e0e0;
}
: فيما يلي بعض األمثلةCSS. يمكنك أيضًا تعيين العرض واالرتفاع لحقل النص باستخدام خصائص العرض واالرتفاع في
input[type='text'] {
width: 50px;
height: 10px;
}
input[type='text'] {
width: 100px;
height: 15px;
}
input[type='text'] {
width: 150px;
height: 20px;
}
من الممكن ضبط عائلة الخط وحجم الخط المستخدم في حقل النص .هنا مثال:
{ ]'input[type='text
;font-family: Times
font-size ;: 24px
}
TEXT AREAS
يمكنك تصميم عنصر HTMLالخاص بمنطقة النص بنفس الطريقة التي يمكنك بها استخدام حقل النص .يمكنك تصميم الحدود ولون الخلفية
والعرض واالرتفاع كما يلي:
{ textarea
;border: 1px solid #cccccc
;background-color: #eeeeee
width ;: 400px
height ;: 200px
}
RESIZE : NONE
افتراضيًا ،يسمح المتصفح للمستخدم بتغيير حجم منطقة النص عن طريق السحب في الزاوية اليمنى السفلية من منطقة النص .إلزالة مؤشر تغيير
الحجم هذا ،يمكنك تعيين خاصية تغيير الحجم في CSSعلى ال شيء ، noneمثل هذا:
{ textarea
;border: 1px solid #cccccc
;background-color: #eeeeee
width ;: 400px
height ;: 100px
85 | P a g e
resize : none;
}
BUTTONS
فيما يلي. األزرار هي عناصر إدخال مع ضبط النوع على الزر أو اإلرسال أو عناصر الزر.يمكنك تصميم األزرار المستخدمة في النماذج أيضًا
: لألزرارHTML بعض األمثلة لكيفية ظهور
input[type='button'] { }
input[type='submit'] { }
button { }
BUTTON STYLES
: هنا مثال.يمكنك تعيين الحدود وألوان الخلفية والخطوط وغير ذلك الكثير على األزرار
button {
font-family : Helvetica;
font-size : 24px;
color : #ffffff;
background-color : #009900;
border : 3px solid #006600;
padding : 10px;
}
يمكنك تعيين األنماط عندما يحوم الماوس فوق الزر أيضًا .هنا مثال:
{ #theButton
font-family ;: Helvetica
font-size ;: 24px
color ;: #ffffff
;background-color : #009900
border ;: 3px solid #006600
padding ;: 5px
}
{ #theButton:hover
;background-color : #00cc00
border ;: 3px solid #009900
}
الحظ كيف يتغير لون الخلفية ولون الحدود عند تحريك الماوس فوق الزر.
LABELS
يمكنك أيضًا تصميم عنصر التسمية ،والذي يحتوي عادّة ً على التسمية الخاصة بحقل إدخال معين .إحدى الطرق الشائعة لتصميم عناصر التسمية هي
منحها نفس العرض .بهذه الطريقة يتم عرض التسميات والحقول بشكل جيد في تخطيط مكون من عمودين .فيما يلي مثال على الكود:
><style
{ label
;display: inline-block
width ;: 200px
}
></style
><label>Name</label> <input type="text"> <br
>"<label>Address</label> <input type="text
الحظ كيف تتم محاذاة التسميات وحقول النص بشكل جيد فوق بعضها البعض .يحدث ذلك ألن عناصر التسمية لها نفس العرض.
يتم استخدام عناصر HTMLالخاصة بمجموعة الحقول ووسيلة اإليضاح لرسم مربع حول النموذج وكتابة وسيلة إيضاح في أعلى المربع (داخل
الحدود) .فيما يلي مثال على الكود:
><fieldset
><legend>Input Form</legend
></fieldset
يمكنك تعيين لون الحدود ولون الخلفية وما إلى ذلك لعنصر مجموعة الحقول ،تما ًما كما لو كان ً ّ
حقال نصيًا .يمكنك أيضًا تعيين خط عنصر وسيلة
عنصرا نصيًا.
ً اإليضاح كما لو كان
88 | P a g e
يمكن استخدام CSSلتصميم الصور داخل صفحات HTML.أعني بالصور الصور المضمنة باستخدام عنصر HTML img.في هذا النص
سوف نغطي الخيارات المتاحة لك لتصميم الصور عبر عنصر imgباستخدامCSS.
MARGIN
تتيح لك خاصية هامش CSSإمكانية ضبط المسافة بين الصورة وعناصر HTMLالمجاورة .تمت تغطية هوامش CSSبمزيد من التفاصيل في
البرنامج التعليمي الخاص بي حول الهوامش فيCSS.
في الواقع ،الهامش هو المسافة بين الحدود المحيطة بالصورة وعناصر HTMLالمجاورة .إذا لم يكن للصورة حدود ،فسيكون الهامش هو المسافة
بين حافة الصورة المتروكة وعناصر HTMLالمجاورة .إذا كانت الصورة ال تحتوي على حشوة ،فسيكون الهامش هو المسافة بين الصورة نفسها
وعناصر HTMLالمجاورة.
BORDER
يمكنك تعيين الحدود على الصورة( عنصر ) imgباستخدام خاصية border CSS.تمت تغطية حدود CSSبمزيد من التفاصيل في البرنامج
التعليمي الخاص بي حول حدود CSS.
{ img.withBorder
;border: 1px solid #cccccc
}
تقوم قاعدة CSSهذه بتعيين حد رمادي يبلغ 1بكسل حول جميع عناصر imgالتي تحتوي على فئة CSS withBorder ( img
class='withBorder').إليك كيفية ظهور الصورة مع تطبيق نمط الحدود أعاله:
PADDING
تقوم خاصية الحشو في CSSبتعيين المسافة بين الصورة وحدودها .تمت تغطية الحشو بمزيد من التفاصيل في البرنامج التعليمي الخاص بي حول
الحشو فيCSS.
فيما يلي مثال يقوم بتعيين كل من المساحة المتروكة والحدود حول الصورة:
89 | P a g e
يمكنك استخدام خصائص العرض واالرتفاع في CSSلتعيين عرض الصورة وارتفاعها .تم أيضًا تناول خصائص العرض واالرتفاع في CSS
في البرنامج التعليمي الخاص بي حول نموذج مربعCSS.
إذا قمت بتعيين عرض وارتفاع مختلف عن عرض الصورة وارتفاعها ،فسيقوم المتصفح بتحجيم الصورة ألعلى أو ألسفل لتتناسب مع العرض
واالرتفاع الذي قمت بتعيينه .فيما يلي بعض أمثلة العرض واالرتفاع في CSS:
{ img.scaledUp
;width: 300px
;height: 150px
}
{ img.scaledDown
;width: 300px
;height: 150px
}
إليك ما ستبدو عليه الصور مع تطبيق األنماط المذكورة أعاله .الصورة األولى توضح الحجم الطبيعي للصورة .تم تكبير الصورتين التاليتين
وتصغيرهما.
90 | P a g e
قد يؤدي تغيير حجم الصور عن طريق ضبط العرض واالرتفاع إلى ظهور صور مشوهة ،مما يعني احتمال فقدان نسبة العرض إلى االرتفاع بين
العرض واالرتفاع .لتغيير حجم صورة مع الحفاظ على نسبة العرض إلى االرتفاع ،قم بتعيين خاصية العرض أو االرتفاع في CSSفقط .سيقوم
المتصفح بعد ذلك بحساب الجانب اآلخر (االرتفاع ،إذا تم تعيين العرض ،أو العرض ،إذا تم تعيين االرتفاع) بنا ًّء على العرض أو االرتفاع المحدد،
بحيث يتم االحتفاظ بنسبة العرض إلى االرتفاع للصورة .فيما يلي مثاالن يحددان العرض واالرتفاع فقط:
{ img.scaledUp
;width: 300px
}
{ img.scaledDown
;height: 150px
}
يمكنك ضبط العرض واالرتفاع على النسب المئوية .في هذه الحالة ،ستحصل الصورة على عرض و/أو ارتفاع وهو عبارة عن نسبة مئوية من
عرض أو ارتفاع عنصر HTMLاألصلي الخاص بها .هنا مثال:
{ img.percentages
;width: 25%
}
تقوم قاعدة CSSهذه بتعيين عرض عنصر imgمع فئة CSS withMaxWidthإلى % 100من العنصر األصلي .ومع ذلك ،يحدد
المثال الصورة بحد أقصى لعرض 500بكسل .بمجرد أن يصل عرض الصورة إلى 500بكسل ،لن يقوم المتصفح بزيادة حجمها ،بغض النظر
عن عرض العنصر األصلي.
91 | P a g e
تعمل خصائص min-widthو min-heightفي CSSمثل خصائص max-widthو max-heightفي ، CSSباستثناء تعيين
الحد األدنى للعرض واالرتفاع للصورة (أو أي عنصر HTMLيتم تطبيقهما عليه(.
RESPONSIVE IMAGES
الصور سريعة االستجابة هي الصور التي تشكل جز ًءا من تصميم الويب سريع االستجابة responsive web designوالتي تتصرف وفقًا
لذلك .تصميم الويب سريع االستجابة هو تصميم ويب قادر على االستجابة بشكل معقول للجهاز الذي يتم عرضه عليه ،سواء كان هذا الجهاز هاتفًا
ًّ
محموال أو سطح مكتب أو تلفزيون. ً
جهازا لوحيًا أو كمبيوتر الً أو
محمو ّ
على شاشة صغيرة ،قد ترغب في عرض صور أصغر حج ًما من عرضها على شاشة كبيرة .قد ترغب أيضًا في تحديد حجم الصورة لتالئم
الشاشات األصغر حج ًما (باستخدام الحد األقصى للعرض).
كجزء من البرنامج التعليمي لتصميم الويب سريع االستجابة والمتوافق مع األجهزة المحمولة ،لدي نص يشرح على وجه التحديد كيفية تنفيذ الصور
سريعة االستجابة.
92 | P a g e
يمكنك استخدام خاصية صورة الخلفية في CSSلتعيين صور الخلفية لعناصر HTML.هنا مثال:
{ #withImage
;)'background-image : url('/images/css/bg-image-small.jpg
}
تقوم قاعدة CSSالنموذجية هذه بتعيين خاصية CSSلصورة الخلفية لعنصر HTMLبالمعرف withImage.تتم اإلشارة إلى عنوان
URLللصورة التي سيتم عرضها كصورة خلفية داخل إعالن url('').في المثال أعاله ،عنوان URLهو /images/css/bg-image-
small.png.
إليك كيف سيبدو عنصر divعند عرضه مع تطبيق قيمة خاصية CSSلصورة الخلفية المذكورة أعاله (لقد أضفت حدًا منق ً
طا لتظهر لك حدود
عنصر(div
كما ترون ،يتم كتابة النص الموجود داخل عنصر divأعلى صورة الخلفية .باإلضافة إلى ذلك ،يتم تكرار صورة الخلفية .سننظر في كيفية التحكم
في هذا السلوك وغيره من السلوكيات في األقسام التالية.
BACKGROUND-REPEAT
تكرار الخلفية
تتحكم خاصية تكرار الخلفية في CSSفي كيفية تكرار صورة الخلفية داخل عنصر HTMLالذي يتم تطبيقها عليه .يمكن لخاصية CSSتكرار
الخلفية قبول القيم التالية:
no-repeat
repeat
repeat-x
repeat-y
تجعل قيمة عدم التكرار عرض صورة الخلفية مرة واحدة فقط داخل عنصر HTML.وال يتكرر ال عموديا وال أفقيا.
قيمة التكرار تجعل صورة الخلفية تتكرر عموديًا وأفقيًا .وبالتالي ،إذا كان ارتفاع عنصر HTML 300بكسل وعرضه 200بكسل ،وكان
ارتفاع صورة الخلفية 150بكسل وعرضها 100بكسل ،فسيتم تكرار صورة الخلفية مرتين أفقيًا ( ، = 2)150 / 300ومرتين عموديًا
().2 = 100 / 200
قيمة التكرار xتجعل صورة الخلفية تتكرر أفقيًا ،ولكن ليس رأسيًا.
93 | P a g e
قيمة التكرار yتجعل صورة الخلفية تتكرر عموديًا ،ولكن ليس أفقيًا.
BACKGROUND-POSITION
يتم استخدام خاصية CSSالخاصة بموضع الخلفية لتعيين موضع صورة الخلفية .يمكن لخاصية CSSالخلفية موضع الخلفية أن تأخذ إما
مجموعة من القيم المحددة مسبقًا ،أو أرقا ًما صريحة .سأوضح لك كيف يعمل كالهما.
يتم تقسيم القيم المحددة مسبقًا إلى مجموعتين .تحدد المجموعة األولى الوضع األفقي والمجموعة الثانية تحدد الوضع الرأسي.
left
center
right
top
center
bottom
عند تعيين قيمة خاصية CSSلموضع الخلفية ،يمكنك تعيين قيمة واحدة للموضع األفقي وقيمة واحدة للموضع الرأسي .هنا مثال:
{ #withImage
background-image ;)': url('/images/css/bg-image-small.jpg
;background-position : left top
}
تقوم قاعدة CSSهذه بتعيين موضع الخلفية إلى اليسار أفقيًا واألعلى عموديًا .سيؤدي هذا إلى وضع الحافة العلوية اليسرى لصورة الخلفية في
أعلى يسار عنصر HTMLالذي يتم تطبيقه عليه .إليك كيف يبدو ذلك مع تكرار الخلفية : background-repeat: none
انظر ماذا يحدث إذا غيرنا موضع الخلفية إلى األسفل األيمن؛
94 | P a g e
تتم اآلن محاذاة الحافة اليمنى للصورة مع الحافة اليمنى لعنصر ، HTMLكما تتم محاذاة الحافة السفلية للصورة مع الحافة السفلية لعنصر
HTML.
ستقوم القيمتان المركزيتان بمحاذاة مركز صورة الخلفية مع مركز عنصر HTMLأفقيًا وعموديًا .هنا هو كيفية وضع الخلفية :مركز المركز؛
تبدو؛
يمكنك الجمع بين القيم األفقية والرأسية بأي طريقة تناسب احتياجاتك.
الً من القيم المحددة مسبقًا ،يمكنك أيضًا استخدام القيم الرقمية لخاصية CSSالخاصة بموضع الخلفية .كما هو الحال مع القيم المحددة مسبقًا،
بد ّ
يمكنك تعيين قيمة واحدة للموضع األفقي وقيمة واحدة للموضع الرأسي .فيما يلي مثال يضبط الموضع األفقي على 100بكسل والموضع الرأسي
على 50بكسل:
{ #withImage
background-image ;)': url('/images/css/bg-image-small.jpg
;background-position : 100px 50px
}
يتم وضع الحافة اليسرى لصورة الخلفية على بعد 100بكسل على يمين الحافة اليسرى لعنصر HTML.يتم وضع الحافة العلوية لصورة الخلفية
على بعد 50بكسل من الحافة العلوية لعنصرHTML.
يمكنك أيضًا استخدام النسب المئوية لتحديد الموضع األفقي والرأسي .عندما تفعل ذلك ،سيقوم المتصفح بمحاذاة النقطة التي تمثلy% ، X%في
صورة الخلفية مع النقطة التي تمثلY% ، X%في عنصر HTML.هنا مثال:
95 | P a g e
{ #withImage
background-image ;)': url('/images/css/bg-image-small.jpg
;background-position : 50% 50%
}
سيقوم هذا المثال بمحاذاة النقطة التي تمثل %50في صورة الخلفية أفقيًا وعموديًا ،مع النقطة التي تمثل %50في عنصر HTMLأفقيًا
وعموديًا .إليك كيف يبدو ذلك عند تطبيقه على عنصر div
والنتيجة هي صورة خلفية مركزية ألن المركز ( )%50 ،%50من صور الخلفية تتم محاذاته مع المركز ( )%50 ،%50لعنصرHTML.
يمكنك مزج القيم الرقمية الثابتة (مثل وحدات البكسل) مع قيم النسبة المئوية .وهنا مثال على ذلك:
{ #withImage
background-image ;)': url('/images/css/bg-image-small.jpg
;background-position : 20px 50%
}
يمكنك أيضًا استخدام القيم السالبة في حالة رغبتك في نقل صورة الخلفية إلى يسار عنصر HTMLأو أعلىه .هنا مثال:
{ #withImage
background-image ;)': url('/images/css/bg-image-small.jpg
;background-position : -20px -20px
}
إليك كيف يبدو ذلك عند تطبيقه على عنصرdiv:
BACKGROUND-ATTACHMENT
96 | P a g e
عادّة ً ما يتم تمرير صورة الخلفية لعنصر HTMLمع بقية المحتوى عند التمرير ألعلى وألسفل في المتصفح .على سبيل المثال ،إذا كان لديك
صورة خلفية تم تعيينها على عنصر النص ،فستكون صورة الخلفية مرئية في أعلى الصفحة (أو في المكان الذي وضعتها فيه) .عندما يقوم
المستخدم بالتمرير إلى أسفل الصفحة ،سيتم تمرير صورة الخلفية ألعلى وخارج نافذة المتصفح ،تما ًما مثل بقية المحتوى الموجود في الصفحة.
إذا كنت تريد االحتفاظ بصورة خلفية عنصر HTMLثابتة بحيث ال يتم تمريرها مع المحتوى الموجود في عنصر ، HTMLفيمكنك استخدام
خاصية CSSلمرفق الخلفية .يمكن لخاصية CSSالخلفية أن تأخذ هذه القيمة:
fixed
scroll
local
'ثابت' يعني أن صورة الخلفية ثابتة داخل إطار عرض المتصفح .إذا تم تمرير المحتوى ،فلن يتم تمرير صورة الخلفية مع المحتوى.
التمرير يعني أن صورة الخلفية ثابتة داخل حدود عنصر HTML.في حالة إمكانية تمرير المحتوى الموجود داخل عنصر ، HTMLفلن يتم
تمرير صورة الخلفية لعنصر HTMLمعه .ومع ذلك ،إذا تم تمرير محتوى المتصفح بالكامل (إطار العرض) ،فستتبع صورة الخلفية حدود
عنصرHTML.
محلي يعني أن صورة الخلفية يتم تمريرها مع أي محتوى داخل إطار العرض أو داخل عنصر HTMLإذا كان العنصر يمكنه تمرير محتواه.
هنا مثال:
{ #withImage
background-image ;)': url('/images/css/bg-image-small.jpg
background-position ;: 20px 20px
;background-attachment : fixed
}
هذا المثال سيجعل صورة الخلفية المرفقة بعنصر النص ثابتة داخل إطار عرض المتصفح ،حتى لو قام المستخدم بالتمرير ألعلى أو ألسفل الصفحة.
BACKGROUND-SIZE
يتم استخدام خاصية حجم الخلفية في CSSلتحديد حجم صورة الخلفية التي تم تعيينها على عنصر HTML.فيما يلي مثال لحجم الخلفية:
{ #withImage
background-image ;)': url('/images/css/bg-image-small.jpg
background-position ;: 20px 20px
background-size ;: 200px 100px
}
يقوم هذا المثال بتعيين خاصية حجم الخلفية في CSSإلى 200بكسل 100بكسل ،مما يعني عرض 200بكسل (الرقم األول) وارتفاع 100
بكسل (الرقم الثاني).
يمكنك أيضًا استخدام النسب المئوية كعرض وارتفاع لصورة الخلفية .هنا مثال:
97 | P a g e
{ #withImage
background-image ;)': url('/images/css/bg-image-small.jpg
background-position ;: 20px 20px
background-size ;: 50% 50%
}
يضبط هذا المثال كال من العرض واالرتفاع بنسبة %50من منطقة تحديد موضع الخلفية (راجع أصل الخلفية أسفل هذه الصفحة).
BACKGROUND-ORIGIN
خلفية األصل
يتم استخدام خاصية الخلفية في CSSلتحديد أي جزء من عنصر HTMLسيتم محاذاة صورة الخلفية معه .يمكن لخاصية CSSذات الخلفية
الخلفية أن تأخذ إحدى هذه القيم:
مربع الحدود
صندوق الحشو
مربع المحتوى
border-box
padding-box
content-box
يعني مربع حدود القيمة أن صورة الخلفية مرسومة بالفعل أسفل حدود عنصرHTML.
يعني مربع حشو القيمة أن صورة الخلفية مأخوذة من مربع الحشو وداخله .يبدأ مربع الحشو داخل حدود عنصر HTMLمباشرةّ ً .وبالتالي ،يتم
محاذاة الزاوية اليسرى العليا من صورة الخلفية مع الزاوية اليسرى العليا من مربع الحشو.
يعني مربع محتوى القيمة أن صورة الخلفية مأخوذة من مربع المحتوى وداخلها .يبدأ مربع المحتوى داخل مربع الحشو -مع استبعاد منطقة الحشو
لعنصرHTML.
فيما يلي ثالثة عناصر divبنفس صورة الخلفية ،باستخدام قيمة مختلفة لخاصية CSSالخاصة بأصل الخلفية .يستخدم اليسار مربع الحدود،
ويستخدم الوسط مربع الحشو ،ويستخدم اليمين مربع المحتوى.
BACKGROUND-CLIP
98 | P a g e
تحدد خاصية مقطع الخلفية في CSSمكان قص صورة الخلفية .بمعنى آخر ،ما هي مساحة عنصر HTMLالمطلوب ملؤها بصورة الخلفية.
تأخذ خاصية مقطع الخلفية في CSSإحدى هذه القيم:
border-box
padding-box
content-box
تعني قيمة مربع الحدود أن صورة الخلفية يتم عرضها من أسفل حدود عنصر HTMLوفيها.
تعني قيمة مربع الحشو أن الجزء الوحيد من مربع الحشو في عنصر HTMLيحتوي على صورة الخلفية المعروضة.
تعني قيمة مربع المحتوى أن الجزء الوحيد من مربع المحتوى في عنصر HTMLيحتوي على صورة الخلفية المعروضة.
يمكنك دمج خاصية مقطع الخلفية مع خاصية مصدر الخلفية للحصول على المقطع ومحاذاة صورة الخلفية التي تحتاجها.
فيما يلي ثالثة عناصر divجميعها مع تعيين أصل الخلفية على مربع الحدود ،وتعيين مقطع الخلفية على مربع الحدود ،ومربع الحشو ،ومربع
المحتوى ،لتظهر لك تأثير الجمع بين خاصيتي CSS
CSS GRADIENTS
يمنحك CSS 3إمكانية استخدام التدرجات كألوان خلفية في عناصر HTML.التدرجات هي انتقاالت لونية حيث يتغير لون المنطقة بشكل متدرج
من لون إلى آخر .غالبًا ما تستخدم التدرجات لمحاكاة تأثير الضوء من األعلى على األسطح الملونة.
تأتي تدرجات CSSفي نوعين مختلفين :التدرجات الخطية والتدرجات الشعاعية .التدرجات الخطية تغير اللون بطريقة خطية .التدرجات الشعاعية
تغير اللون بطريقة دائرية .سيتم تغطية كل من التدرجات الخطية والشعاعية في هذا النص.
LINEAR GRADIENTS
تقوم التدرجات الخطية بتلوين منطقة أو نص بطريقة خطية مما يعني أن اللون يتغير خطيًا من لون إلى آخر .فيما يلي مثال للتدرج الخطي المرئي
لـCSS:
99 | P a g e
><style
{ #gradient1
;)background-image: linear-gradient(180deg, #666666, #000000
;height: 100px
}
></style
><div id="gradient1"></div
يستخدم المثال دالة )( CSS Linear-gradientكقيمة لخاصية CSSلصورة الخلفية .وهذا يجعل المتصفح يقوم بتلوين خلفية عنصر
HTMLبتدرج خطي.
تأخذ الدالة الخطية المتدرجة () ثالث معلمات .المعلمة األولى هي زاوية التدرج .في المثال أعاله استخدمت 180درجة وهو ما يعني 180
درجة .المعلمتان الثانية والثالثة هما األلوان 'من' و'إلى' .في المثال أعاله ،يتغير التدرج من اللون ( 666666#رمادي داكن) إلى 000000#
(أسود).
فيما يلي مثال يتغير من األخضر إلى األزرق باستخدام زاوية 45درجة:
COLOR STOPS
تسمى معلمات اللون في وظيفة التدرج الخطي () 'توقفات اللون' .تتكون محطة اللون من لون وموقع بالنسبة المئوية حيث يتم تطبيق اللون بالكامل.
ألق نظرة على مثال التدرج الخطي هذا:
><style
{ #gradient3
;)background-image: linear-gradient(180deg, #00ff00 20%, #0000ff 80%
;height: 100px
}
></style
><div id="gradient3"></div
الحظ كيف أن اللونين لديهما اآلن نسبة مئوية بعدهما ( %20و .)%80هذا يعني أن التدرج يبدأ بنسبة %20في المنطقة ذات اللون األخضر،
وينتهي بنسبة % 80في المنطقة ذات اللون األزرق .إليك كيف يبدو التدرج الخطي عند تطبيقه على عنصرHTML:
100 | P a g e
الحظ كيف يتم تلوين المنطقة قبل بدء التدرج باللون األول ،والمنطقة بعد انتهاء التدرج يتم تلوينها باللون الثاني.
يمكنك استخدام أكثر من توقفين لونيين .فيما يلي مثال للتدرج الخطي الذي يستخدم 3توقفات لونية:
><style
{ #gradient4
background-image: linear-gradient(45deg, #00ff00 20%, #ff0000 50%,
;)#0000ff 80%
;height: 100px
}
></style
><div id="gradient4"></div
يحتوي هذا المثال على لون أحمر في منتصف التدرج (بنسبة .)%50إليك ما يبدو عليه التدرج الخطي عند تطبيقه على عنصرHTML:
RADIAL GRADIENTS
تعمل التدرجات القطرية على تمديد تغير لونها من النقطة المركزية إلى الخارج بطريقة دائرية أو إهليلجية .هنا مثال مرئي:
يتم تعريف التدرجات الشعاعية باستخدام وظيفة radial-gradient() CSS.إليك الكود الذي أنشأ المثال أعاله:
><style
{ #gradient5
background-image: radial-gradient(ellipse farthest-corner at 50% 50%
;), #00FFFF 0%, #0000FF 95%
;height: 100px
}
101 | P a g e
></style
><div id="gradient5"></div
(radial-gradient
shape
][length | percentage] [| extent-keyword
][at position
,color stop
,color stop
][,color stop
;)
يمكن أن تأخذ معلمة الشكل قيمة الدائرة circleأو القطع الناقص .ellipseيحدد هذا ما إذا كان شكل التدرج القطري ي دائريًا أو
بيضاويًا.
تحدد معلمة الطول lengthنصف قطر التدرج الشعاعي للتدرجات الدائرية .بالنسبة للتدرجات البيضاوية ،تحتاج إلى تحديد معلمتين للطول.
واحد لنصف قطر التدرج في االتجاه Xو Y.بالنسبة للتدرجات البيضاوية ،يمكنك أيضًا استخدام النسب المئوية كأطوال بد ّ
الً من pxو emوما
إلى ذلك.
يحدد الموضع مركز التدرج .إذا لم يتم تحديد هذه المعلمات ،فسيتم افتراض أن الموضع يكون في مركز عنصر HTML.تتم كتابة الكلمة
األساسية atكنص ويتم كتابة الموضع كإحداثيتين .على سبيل المثال عند 200بكسل 50بكسل .وهذا يعني 'عند النقطة x=200,y=50'.
الً من معلمة الطول ،يمكنك استخدام كلمة رئيسية لمعرفة حجم التدرج الشعاعي .قيم الكلمات الرئيسية المحتملة هي:
بد ّ
closest-side
closet-corner
farthest-side
farthest-corner
تجعل هذه الكلمات األساسية التدرج الشعاعي يمتد أفقيًا وعموديًا من مركز (موضع) التدرج إلى الجانب األقرب أو الزاوية األقرب أو الجانب األبعد
أو الزاوية األبعد لعنصر HTMLالذي يتم تطبيق التدرج عليه.
تتكون معلمات إيقاف األلوان من تعريفين أو أكثر إليقاف األلوان ،مفصولة بفاصلة .مرة أخرى ،يتكون تعريف توقف اللون من قيمة اللون ونسبة
مئوية توضح مدى وضع هذا اللون في التدرج .أعني بـ 'الموضع' المكان الذي يكون فيه التدرج بهذا اللون -إما بالبدء من هذا اللون أو االنتهاء
بهذا اللون.
فيما يلي بعض األمثلة التي توضح لك كيف يبدو بناء الجملة في الواقع ،باإلضافة إلى كيف يبدو التدرج الشعاعي المقابل عند عرضه.
><style
{ #gradient6
;)background-image: radial-gradient(circle, #FF0000 0%, #0000FF 100%
102 | P a g e
height: 100px;
}
</style>
<div id="gradient6"></div>
<style>
#gradient7 {
background-image: radial-gradient(circle 100px, #FF0000 0%, #0000FF
100%);
height: 100px;
}
</style>
<div id="gradient7"></div>
<style>
#gradient8 {
background-image: radial-gradient(circle 100px at 200px 50px, #FF0000 0%,
#0000FF 100%);
height: 100px;
}
</style>
<div id="gradient8"></div>
<style>
#gradient9 {
background-image: radial-gradient(circle closest-side at 200px 50px,
#FF0000 0%, #0000FF 100%);
height: 100px;
}
</style>
<div id="gradient9"></div>
103 | P a g e
<style>
#gradient10 {
background-image: radial-gradient(circle closest-corner at 200px 50px,
#FF0000 0%, #0000FF 100%);
height: 100px;
}
</style>
<div id="gradient10"></div>
<style>
#gradient11 {
background-image: radial-gradient(ellipse, #FF0000 0%, #0000FF 100%);
height: 100px;
}
</style>
<div id="gradient11"></div>
<style>
#gradient12 {
background-image: radial-gradient(ellipse 100px 50px, #FF0000 0%, #0000FF
100%);
height: 100px;
}
</style>
<div id="gradient12"></div>
<style>
#gradient13 {
104 | P a g e
<style>
#gradient14 {
background-image: radial-gradient(ellipse farthest-side at 200px 50px,
#FF0000 0%, #0000FF 100%);
height: 100px;
}
</style>
<div id="gradient14"></div>
<style>
#gradient15 {
background-image: radial-gradient(ellipse farthest-corner at 200px 50px,
#FF0000 0%, #0000FF 100%);
height: 100px;
}
</style>
<div id="gradient15"></div>
. وهي قوية جدًا، أيضًا على ميزات متدرجة مدمجةSVG يحتوي. ليست الخيار الوحيد المتاح لديك لتلوين منطقة أو شكل بتدرجCSS تدرجات
SVG. في البرنامج التعليمي لتدرجاتSVG يمكنك القراءة عن تدرجات
وإنشاء مستطيل بتدرج داخلHTML كصورة خلفية لعنصرSVG يمكنك استخدام صورة، HTML كخلفية لعنصرSVG الستخدام تدرج
. لمزيد من المعلوماتCSS راجع صور خلفيةHTML. ثم قم بقياس صورة الخلفية لملء عنصرSVG. صورة
105 | P a g e
106 | P a g e
يمكن لخاصية box-shadowفي CSSإضافة ظل أسفل عنصر HTMLبحيث يبدو وكأنه مرفوع فوق عناصر HTMLاألخرى في
الصفحة ،مثل ثالثي األبعاد تقريبًا.
تحدد معلمات offsetXو offsetYمقدار الظل الذي 'يبرز' من عنصر HTML.تحدد المعلمة offsetXالمسافة على طول المحور X
وتحدد المعلمة offsetYالمسافة على طول المحور Y.يمكنك استخدام األرقام الموجبة والسالبة للتحكم في مكان عرض الظل.
يحدد BlurRadiusمدى تمويه الظل .كلما زاد نصف قطر التمويه ،كلما أصبح ظل الصندوق أكثر ضبابية.
يحدد SpreadRadiusمقدار انتشار الظل .يمكنك استخدام نصف قطر االنتشار اإليجابي والسلبي .سيؤدي نصف قطر االنتشار السلبي إلى
حصر الظل في الظهور أسفل إحدى حواف عنصر HTMLفقط.
يحدد ShadowColorلون الظل .هذا مجرد لون CSSقياسي محدد باستخدام بناء جملة CSSالقياسي .الحظ أن نصف قطر التمويه يؤثر
على اللون الحقيقي أيضًا ،من خالل تشويش لون ظل الصندوق.
فيما يلي مثال بنصف قطر انتشار سلبي ( 6-بكسل) وoffsetX 0
فيما يلي مثال مع إضافة الكلمة األساسية الداخلية أيضًا .الحظ كيف يتم اآلن رسم ظل المربع داخل عنصر HTMLفي الجزء العلوي من عنصر
،HTMLمما يجعله يبدو وكأنه مضغوط داخل الصفحة.
107 | P a g e
CSS DISPLAY
تحدد خاصية عرض CSSكيفية عرض عنصر HTMLفي تدفق عناصر HTMLعلى الصفحة .يمكن لخاصية العرض في CSSأن تأخذ
إحدى القيم:
none
block
inline
inline-block
grid
كيفية تأثير كل من قيم خصائص عرض CSSعلى عرض عنصر HTMLموضح في األقسام التالية.
DISPLAY : NONE
ستؤدي قيمة خاصية عرض CSSإلى عدم عرض عنصر HTMLفي الصفحة في المتصفح .كما أنها لن تشغل أي مساحة مرئية في صفحة
HTML.فيما يلي مثال لعنصر HTMLمع تعيين خاصية عرض CSSالخاصة به على ال شيء:
><style
} ;#myElement { display: none
></style
>"<div id="myElement
This DIV element is not displayed
></div
/div
قد تتساءل عن سبب قيامك بتضمين عنصر HTMLفي صفحة HTMLثم تطبيق قيمة خاصية عرض CSSعليه ،لذا فهو غير مرئي .هناك
حالتان على األقل حيث يكون هذا منطقيًا -وسأشرحهما في األقسام التالية.
الموقف األول هو عندما تريد إظهار أو إخفاء عنصر HTMLاعتمادًا على استعالمات وسائط CSS.على سبيل المثال ،قد ترغب في إظهار
عنصر HTMLمعين فقط عندما تكون نافذة المتصفح أعلى من حجم معين .في نوافذ المتصفح األصغر حج ًما ،قد ترغب في إخفاء عنصر
HTMLهذا الستخدام المساحة المتوفرة بشكل أكثر كفاءة -لتجنب تشوش تجربة المستخدم .فيما يلي مثال لمجموعة من استعالمات وسائط CSS
المدمجة مع خاصية عرض CSSإلظهار عناصر HTMLوإخفائها اعتمادًا على عرض نافذة المتصفح:
><style
{ )@media only screen and (max-width: 600px
} ;#myElement { display: none
}
{ )@media only screen and (min-width: 601px
} ;#myElement { display: inline
}
></style
109 | P a g e
>"<div id="myElement
This DIV is only displayed on larger screens
></div
سيخفي هذا المثال عنصر HTMLبالمعرف myElementعندما يكون عرض نافذة المتصفح 600بكسل أو أقل.
الموقف الثاني هو عندما تستخدم JavaScriptإلظهار عنصر HTMLوإخفائه عن طريق ضبط خاصية العرض الخاصة به على ال شيء
وشيء آخر .فيما يلي مثال لتبديل قيمة خاصية عرض CSSباستخدامJavaScript:
DISPLAY : BLOCK
تؤدي قيمة الكتلة الخاصة بخاصية العرض CSSإلى عرض عنصر HTMLككتلة منفصلة .تبدأ الكتلة في سطر جديد ،والمحتوى بعد الكتلة يبدأ
في سطر جديد أيضًا .انظر إلى مثال HTMLهذا:
><p
This text contains
><span>display : block</span
elements.
></p
يحتوي هذا المثال على عنصر االمتداد . spanعادّة ً ما يتم عرض عنصر االمتداد كجزء من تدفق النص .هذه هي الطريقة التي يبدو بها
HTMLأعاله عند تقديمه:
><p
This text contains
><span style="display:block">display : block</span
elements.
></p
كما ترون ،يتم اآلن عرض االمتداد ككتلة منفصلة منفصلة رأسيًا .هذا هو تأثير قيمة الكتلة لخاصية عرضCSS.
DISPLAY : INLINE
تعرض القيمة المضمنة عنصر HTMLكجزء من تدفق النص العادي .انظر إلى مثال HTMLهذا:
عادّة ً ما يتم عرض عناصر divبتنسيق HTMLككتلة افتراضيًا .وبالتالي ،سيتم عرض كل عنصر من عنصري divككتل منفصلة .هنا كيف
يبدو ذلك:
اآلن ،الحظ ما يحدث عندما نقوم بتعيين خاصية العرض CSSلتضمين عنصري div.هنا هو رمز HTML
DISPLAY : INLINE-BLOCK
إن قيمة الكتلة المضمنة inline-blockلخاصية العرض CSSتجعل عنصر HTMLيظهر ككتلة ،ولكن يتم عرضه كجزء من تدفق
النص العادي .ماذا يعني ذالك؟
عند استخدام القيمة المضمنة ، inlineال يمكنك التحكم في عرض وارتفاع عناصر HTML.ويحدد المتصفح ذلك بنا ًّء على محتوى العناصر.
باستخدام الكتلة المضمنة ،يمكنك التحكم في عرض وارتفاع عناصر HTMLمرة أخرى ،حتى لو تم عرضها كجزء من تدفق النص العادي.
><p
This text contains a
><span style="width: 150px;">span element</span
and another
><span style="width: 150px">span element</span
and some text.
></p
لكن الحظ ما يحدث عندما نقوم بتعيين خاصية العرض في CSSعلى inline-blockلعنصري .span
><p
This text contains a
;<span style="display: inline-block
>width: 150px;">span element</span
and another
111 | P a g e
نظرا لكون عرض النص الموجود داخل عناصر االمتداد أقل من 150بكسل ،فإن عناصر االمتداد تترك فجوة بيضاء في تدفق النص.
ً
DISPLAY : GRID
تجعل قيمة خاصية شبكة العرض CSSمحتوى عنصر( HTMLعادّة ً ) DIVينسق عناصره في شبكة ثنائية األبعاد .يعد تخطيط شبكة
قويًا جدًا وبالتالي فهو معقد إلى حد ما في الوصف والفهم .لذلك قررت أن أتركه خارج هذا البرنامج التعليمي لعرضCSS.
تحتوي عناصر HTMLالمختلفة على قيم افتراضية مختلفة لخاصية العرض في CSS.في الجدول أدناه قمت بإدراج بعض عناصر HTML
األكثر استخدا ًّما وقيمها االفتراضية .قد تساعدك معرفة قيم العرض االفتراضية الخاصة بها على فهم كيفية عرض صفحتك .القائمة ليست كاملة،
لذلك بالنسبة للعناصر غير الموجودة في هذه القائمة ،سيتعين عليك التحقق من مرجعCSS / HTML.
بغض النظر عن القيمة االفتراضية التي يستخدمها عنصر HTMLلقيمة خاصية عرض CSSالخاصة به ،يمكنك دائ ًما تجاوزها عن طريق تعيين
قيمة خاصية عرض CSSإلى القيمة المطلوبة.
112 | P a g e
CSS FLOAT
يمكن لخاصية CSS floatأن تجعل عناصر HTMLتطفو إلى اليسار أو اليمين داخل العنصر األصلي .سيتحرك المحتوى الموجود داخل نفس
العنصر األصلي ألعلى ويلتف حول العنصر العائم .في هذا البرنامج التعليمي لـ CSS floatسأشرح كيفية عمل خاصية CSS floatبمزيد
من التفاصيل.
يحتوي كود HTMLعلى عنصر divالذي يحتوي على نص وعنصري divونص آخر داخل نصه .عندما يتم تقديمه ،إليك ما يبدو:
FLOAT : LEFT
113 | P a g e
اآلن ،دعونا نحاول جعل عنصر divالمتداخل األول يطفو على اليسار باستخدام خاصية float CSS.نقوم بذلك عن طريق تعيين خاصية
CSS floatلعنصر HTMLعلى القيمة المتبقية .فيما يلي مثال يوضح عنصر divمع تعيين خاصية CSS floatعلى اليسار:
الحظ كيف يطفو عنصر divاألول (ذو الحد األحمر) اآلن إلى اليسار داخل العنصر األصلي .يتم اآلن التفاف النص األول بشكل جيد حول
عنصر divاألول ،الموجود على يمينه .يظل عنصر divالثاني موجودًا أسفل عنصر divاألول ،والنص األخير أسفله.
اآلن ،دعونا نحاول جعل قسم divالمتداخل الثاني يطفو على اليسار أيضًا .إليك ما يبدو عليه الكود:
></div
اآلن يطفو عنصر divالمتداخل األول والثاني إلى اليسار داخل العنصر األصلي .يلتف النص بشكل جيد حول العنصرين العائمين.
FLOAT : RIGHT
الً من ذلك .نقوم بذلك عن طريق تعيين خاصية float CSSالخاصة بها إلى
اآلن دعونا نحاول جعل القسم المتداخل الثاني يطفو إلى اليمين بد ّ
الً من اليسار .هنا هو الرمز:
اليمين بد ّ
بل إنها تقع في نفس الموضع الرأسي (باتجاه الجزء العلوي من العنصر.انظر كيف يتحرك العنصران اآلن في كل اتجاه داخل العنصر األصلي
div. من خالل عرضه بين عنصريdiv يلتف النص اآلن حول عنصري.)األصلي
CLEAR
الحظ كيف يتم وضع العنصرين العائمين األيسرين على نفس 'الخط' األفقي ،بعد بعضهما البعض.
تخيل اآلن أنك تريد أن يطفو عنصرا divذوا الحدود الحمراء إلى اليسار ،ولكن تحت بعضهما البعض بد ّ
الً من أن يكونا بجوار بعضهما البعض.
للقيام بذلك ،تحتاج إلى تعيين خاصية CSSالواضحة.
left
right
both
none
القيمة اليسرى تعني أن العنصر يجب أن يظل خاليًا من جميع العناصر العائمة اليسرى .القيمة اليمنى تعني أن العنصر يجب أن يظل خاليًا من جميع
العناصر العائمة الصحيحة .تعني القيمتان أن العنصر يجب أن يظل خاليًا من العناصر العائمة اليمنى واليسرى .القيمة 'ال شيء' تعني عدم وجود
مسح ،وهو نفس ترك خاصية CSSالواضحة.
دعونا نقوم بتعيين خاصية CSSالواضحة لعنصر divاألخير على اليسار .بعد ذلك ،يجب أن يظل عنصر divاألخير يطفو إلى اليسار ،لكن
يظل بعيدًا عن أول عنصر divعائم على اليسار .إليك كيف يبدو الكود:
الحظ كيف أن عنصر divاألخير ال يزال يطفو إلى اليسار ،لكنه يبقى تحت (خاليًا) من أول عنصر divعائم على اليسار.
118 | P a g e
CSS POSITION
تتيح لك خاصية الموضع في CSSإمكانية وضع عناصر HTMLبطرق مختلفة عن تدفق النص العادي ،وبطرق مختلفة عن خاصية العرض
فيCSS.
static
relative
fixed
absolute
POSITION : STATIC
يؤدي تعيين الموضع على القيمة الثابتة إلى جعل المتصفح يعرض عنصر HTMLتما ًما مثل المعتاد .بمعنى آخر ،القيمة الثابتة هي السلوك
الً من ذلك ،لن تقوم بتعيين خاصية CSS
االفتراضي لعناصر HTML.في أغلب األحيان لن تحتاج إلى ضبط الوضع على الوضع الثابت .بد ّ
للموضع على اإلطالق.
POSITION : RELATIVE
يؤدي تعيين خاصية الموضع CSSإلى نسبي إلى جعل المتصفح يعرض HTMLفي موضع متناسب مع المكان الذي كان سيتم عرض عنصر
HTMLفيه في النص العادي وتدفق العناصر .لتحديد مكان وضع عنصر ، HTMLلديك أربع خصائص CSSإضافية:
top
left
bottom
right
فيما يلي مثال يضع عنصر HTMLبمقدار 20-بكسل إلى اليسار و 20-بكسل فوق موضعه الطبيعي في التدفق:
><style
{ #theRelativeSpan
;position : relative
top ;: -20px
left ;: -20px
border : 1px solid #cccccc; //shows the boundaries of the element.
}
></style
><p
This is a paragraph with a lot of text inside, and a <span
>id="theRelativeSpan">relative span element</span
as part of the text.
></p
119 | P a g e
الحظ كيف يتم عرض عنصر االمتداد إلى اليسار وفوق المكان الذي كان من المفترض أن يتم وضعه فيه عادّة ً .الحظ أيضًا أن المساحة الفارغة ال
تزال تظهر في المكان الذي كان من المفترض أن يُعرض فيه النطاق عاد ّةً.
POSITION : FIXED
إن ضبط خاصية الموضع CSSعلى القيمة الثابتة يجعل عنصر HTMLالذي يتم تطبيق الخاصية عليه ،يتم عرضه في موضع ثابت داخل نافذة
المتصفح (إطار العرض) .حتى إذا قام المستخدم بتمرير صفحة HTMLعموديًا أو أفقيًا ،أو قام بتغيير حجم نافذة المتصفح ،فسيظل العنصر ثابتًا
في نفس الموضع داخل نافذة المتصفح.
فيما يلي لقطتان لشاشة المتصفح توضحان تأثير الموضع :إعالن خاصية CSSالثابتة:
120 | P a g e
الً (تم تغيير حجم المتصفح) في لقطة الشاشة الثانية ،ولكن عنصر HTMLذو الخلفية الرمادية ال يزال موجودًا في
الحظ أن المتصفح أطول قلي ّ
أسفل نافذة المتصفح.
POSITION : ABSOLUTE
يعمل تعيين قيمة خاصية الموضع CSSعلى القيمة المطلقة تما ًما مثل القيمة الثابتة مع بعض االستثناءات .كما هو الحال مع اإلصالح ،يتم وضع
عنصر HTMLبالنسبة لنافذة المتصفح (إطار العرض) ،ولكن عندما يقوم المستخدم بالتمرير أفقيًا أو رأسيًا ،فإن عنصر HTMLال يبقى في نفس
الموضع داخل إطار العرض.
><style
{ #theAbsoluteDiv
;position: absolute
bottom ;: 0px
;background-color: #cccccc
}
></style
>"<div id="theAbsoluteDiv
This text is positioned with <code>absolute</code> at the bottom of the
browser window.
></div
يقوم هذا المثال بتعيين عنصر divإلى الموضع :مطلق ،مع تحديد موضع عنصر divعلى بعد 0بكسل من أسفل المتصفح .إليك كيف يبدو ذلك
عند عرضه داخل صفحة تحتوي على المزيد من النص:
121 | P a g e
طا بنافذة المتصفح عند تغيير حجم نافذة المتصفح .يمكنك أن ترى ذلك في لقطة شاشة المتصفح هذه لنفس الصفحة ،ولكن مع
يظل عنصر divمرتب ً
تغيير حجم المتصفح ليصبح أطول:
هنا مثال:
><style
{ #theOuterDiv
;position: relative
top ;: 0px
left ;: 0px
border ;: 1px solid #cccccc
;padding : 10px
}
{ #theInnerDiv
;position: absolute
top ;: 0px
right ;: 0px
;padding : 10px
;background-color: #ccffcc
border ;: 1px solid #99cc99
}
></style
>"<div id="theOuterDiv
This is the outer div element.
This is the outer div element.
This is the outer div element.
This is the outer div element.
>"<div id="theInnerDiv
This is the inner div element.
></div
></div
نظرا ألنه تم ضبط األعلى واليسار على ،px0فسيتم وضع عنصر div
يقوم هذا المثال بتعيين الموضع إلى نسبة نسبية لعنصر divالخارجيً .
الخارجي تما ًما في المكان الذي كان سيتم وضعه فيه بدون تعيين الموضع إلى نسبي.
تم ضبط موضع عنصر divالداخلي على القيمة المطلقة واألعلى على px 0واليمين على 0px.يؤدي هذا إلى وضع القسم الداخلي في الزاوية
123 | P a g e
اليمنى العليا داخل العنصر األصلي الخاص به (ألن العنصر األصلي له الموضع :مجموعة نسبية).
إليك كيفية ظهور ذلك عند عرضه في متصفح داخل صفحة تحتوي على المزيد من النص:
الحظ كيف أصبح موضع القسم الداخلي اآلن مطلقًا داخل العنصر األصلي.
124 | P a g e
تمكنك استعالمات وسائط CSSمن تطبيق أنماط CSSمختلفة في صفحة HTMLالخاصة بك اعتمادًا على الجهاز الذي يعرض صفحة
HTML.وبشكل أكثر تحديدًا ،تمكنك استعالمات الوسائط من تطبيق أنماط مختلفة اعتمادًا على عرض نافذة المتصفح وعرض شاشة الجهاز ونوع
الجهاز ونسبة العرض إلى االرتفاع ونسبة البكسل .في كثير من الحاالت ،يكفي أن تعتمد استعالمات الوسائط الخاصة بك على عرض نافذة
المتصفح.
يوضح هذا المثال كيفية إضافة استعالمات الوسائط إلى عنصر االرتباط .فقط في حالة استيفاء الشروط في استعالم الوسائط ،يتم تطبيق ملف
CSSعلى مستند HTML.
يوضح هذا المثال كيفية استيراد ورقة أنماط CSSمن داخل ورقة أنماط CSSأخرى .يمكنك إلحاق استعالم وسائط بتعليمات @import.فقط
في حالة استيفاء الشروط الموجودة في استعالم الوسائط ،يتم استيراد ملف CSSوتطبيقه.
يوضح هذا المثال كيفية إدراج استعالمات الوسائط مباشرّة ً في ورقة أنماط CSS.فقط في حالة استيفاء الشروط في استعالم الوسائط ،يتم تطبيق
قواعد CSSداخل كتلة استعالم الوسائط.
إن بناء جملة استعالم الوسائط هو نفسه بغض النظر عما إذا كنت تستخدمه داخل عنصر رابط ،أو بعد تعليمات ، @importأو داخل ورقة
أنماط CSS
هناك المزيد من أنواع الوسائط ،ولكن ليس جميعها مدعومة من قبل المتصفح في وقت كتابة هذا التقرير .يمكنك العثور على القائمة الكاملة على
http://www.w3.org/TR/CSS21/media.html.
تقوم الكتل ]) [and (conditionبتعيين الشروط للشاشة .على سبيل المثال ،يمكنك استخدام هذه الخصائص داخل كتلة الشرط:
126 | P a g e
كما الحظت ،تنقسم خصائص الحالة إلى مجموعتين :المجموعة األولى تتعلق بعرض وارتفاع نافذة المتصفح ،والمجموعة الثانية تتعلق بعرض
وارتفاع شاشة الجهاز الفعلية .على كمبيوتر سطح المكتب ،قد يتغير عرض نافذة المتصفح إذا قام المستخدم بتغيير حجم المتصفح ،ولكن عرض
الجهاز ال يتغير .وهذا أمر ثابت (ما لم يغير المستخدم دقة الشاشة على بطاقة الرسومات(
على األجهزة المحمولة ،يكون عرض نافذة المتصفح وعرض الجهاز متماثلين عادّة ً ،حيث يشغل المتصفح عادّة ً شاشة الجهاز بأكملها .ومع ذلك ،إذا
قام المستخدم بتغيير اتجاه الجهاز ،فسيصبح عرض الجهاز هو ارتفاع الجهاز والعكس صحيح.
><style
{ )@media only screen and (max-width: 600px
127 | P a g e
/* CSS rules for browser widths equal to or less than 600px */
} ;body { background-color: #ffffff
}
{ )@media only screen and (min-width: 601px) and (max-width: 1200px
/* CSS rules for browser widths from 601px to 1200 px */
} ;body { background-color: #ff0000
}
{ )@media only screen and (min-width: 1201px
/* CSS rules for browser widths from 1201px and up */
} ;body { background-color: #0000ff
}
></style
تتطابق استعالمات الوسائط الثالثة هذه مع عروض مختلفة لنافذة المتصفح .يتطابق استعالم الوسائط األول مع جميع عروض المتصفح التي تقل عن
أو تساوي 600بكسل .وهذا يعني أن جميع قواعد CSSالمدرجة داخل نص استعالم الوسائط (داخل } ) { ...لن يتم تطبيقها إال إذا كان
عرض نافذة المتصفح 600بكسل أو أقل.
يتطابق استعالم الوسائط الثاني مع عرض نافذة المتصفح من 601بكسل إلى 1200بكسل .لن يتم تطبيق قواعد CSSداخل نص استعالم
الوسائط إال إذا كان عرض نافذة المتصفح يقع في هذه الفترة الزمنية.
يتطابق استعالم الوسائط الثالث مع عرض نافذة المتصفح بد ًءا من 1201بكسل وما فوق .لن يتم تطبيق قواعد CSSداخل نص استعالم الوسائط
إال إذا كان عرض نافذة المتصفح 1201بكسل أو أكثر.
في األمثلة ،يحتوي كل استعالم عن الوسائط على قاعدة CSSواحدة فقط داخل النص األساسي ،تحدد لون الخلفية .في تطبيق ويب حقيقي أو موقع
ويب ،يمكن أن يكون لديك المزيد من قواعد CSS
128 | P a g e
CSS OPACITY
يمكن استخدام خاصية العتامة CSSلتعيين العتامة/الشفافية لعنصر HTML.العتامة هي عكس الشفافية ،لذا كلما كان عنصر HTMLأكثر
عتامة ،كلما كان أقل شفافية.
يتم تحديد العتامة كرقم بين 0و .1القيمة 0تعني شفافية كاملة (بدون عتامة) ،والقيمة 1تعني معتمة تما ًما .وبالمثل ،فإن القيمة 0.5تعني شبه
معتم ،وهي نفس القيمة شبه شفافة.
{ .withOpacity
;opacity: 0.5
}
تحدد هذه األمثلة عتامة جميع عناصر HTMLمع فئة CSSذات العتامة إلى 0.5مما يعني أن عناصر HTMLتصبح شبه شفافة.
فيما يلي مثال مرئي لعنصر divمع صورة خلفية ،ويحتوي على عنصر divآخر بخلفية حمراء وبعض النصوص البيضاء .تم ضبط عتامة
عنصر divالداخلي على :0.7
الحظ كيف يمكنك رؤية صورة الخلفية لعنصر divالخارجي من خالل الخلفية الحمراء والنص األبيض لعنصر divالداخلي.
إذا قمت بتعيين عتامة عنصر HTMLوكان لهذا العنصر عناصر فرعية (عناصر متداخلة) ،فإن الحد األقصى من العتامة التي يمكن أن تتمتع بها
العناصر المتداخلة هو نفس العنصر األصلي .على سبيل المثال ،إذا قمت بتعيين عتامة بمقدار 0.7على العنصر الخارجي (األصل) ،فيمكن أن
129 | P a g e
هناك طرق للتغلب على هذا .على سبيل المثال ،يمكنك تعيين لون خلفية العنصر األصلي إلى لون ذو شفافية (راجع ألوان CSS).عندها سيكون
لون خلفية الوالدين فقط شفافًا .ستكون جميع العناصر المتداخلة معتمة تما ًما.
يمكنك أيضًا وضع عنصر معتم فوق عنصر شبه شفاف باستخدام خاصية الموضع في CSS.وبالتالي فإن العنصر المعتم ليس من الناحية الفنية
ابنًّا للعنصر شبه الشفاف ،ولكنه سيبدو كما لو كان كذلك.
خطوط الويب هي خطوط خارجية (إضافية) يمكن استخدامها داخل مواقع الويب وتطبيقات الويب الخاصة بك .يتم تضمين خطوط الويب في ملف
خاص بها ،تما ًما مثل الصورة .وبالتالي ،لكي تستخدم صفحة HTMLالخاصة بك خط ويب ،يجب عليك الرجوع إلى ملف خط الويب .يمكنك
الرجوع إلى ملف خط الويب من داخل CSSالخاص بك .سيشرح هذا النص كيفية القيام بذلك -كيفية استخدام خطوط الويب عبر أوراق أنماط
CSSالخاصة بك.
يتم توفير خطوط الويب من قبل الشركات التي تصنع الخطوط .وبالتالي ،يمكنك العثور على خطوط الويب من العديد من األماكن المختلفة .مكانان
جيدان للبدء بالرغم من ذلك:
الستخدام خط ويب في CSSالخاص بك ،سيتعين عليك تحديد الخط في CSSالخاص بك .إليك كيفية تحديد وجه خط الويب فيCSS:
{ @font-face
;'font-family: 'Roboto
;font-style: normal
;font-weight: 400
src: local('Roboto Regular'),
local('Roboto-Regular'),
url(http://themes.googleusercontent.com/static/fonts/roboto/v11/2UX7WLTfW3W8T
)clTUvlFyQ.woff
;)'format('woff
}
يحدد هذا المثال خط الويب Robotoمن Google.يمكنك اآلن استخدام اسم عائلة الخط عند تصميم النص ،كما يلي:
{ p
;font-family: Roboto
}
130 | P a g e
يتم تعيين الفقرة التالية باستخدام خط الويبp. خط الويب المحدد مسبقًا )لجميع عناصرRoboto (يقوم هذا المثال بتعيين عائلة الخط إلى
: حتى تتمكن من رؤية كيف تبدو عند عرضها،هذاRoboto
: لذا إليك خط ويب حيث يكون الفرق أكثر وضو ًحا،قد يكون من الصعب رؤية الفرق بين الخطين
@font-face {
font-family: 'Shadows Into Light';
font-style: normal;
font-weight: 400;
src: local('Shadows Into Light'),
local('ShadowsIntoLight'),
url(http://fonts.gstatic.com/s/shadowsintolight/v5/clhLqOv7MXn459PTh0gXYFK2TS
YBz0eNcHnp4YqE4Ts.woff2)
format('woff2'),
url(http://fonts.gstatic.com/s/shadowsintolight/v5/clhLqOv7MXn459PTh0gXYHW1xg
lZCgocDnD_teV2lMU.woff)
format('woff');
}
Shadows Into Light.تم ضبط هذا النص باستخدام
@FONT-FACE EXPLAINED
فسيتعين عليك تحديد ثالثة، إذا كنت بحاجة إلى أنماط خطوط عادية ومائلة وغليظة. بنمط خط واحد،@ خط ويب واحدًاfont-face يحدد إعالن
: هنا كيف سيبدو ذلك. خط ويب واحد لكل نمط.خطوط ويب مختلفة
@font-face {
font-family: 'Roboto';
font-style: normal;
font-weight: 400;
src: local('Roboto Regular'),
local('Roboto-Regular'),
url(http://themes.googleusercontent.com/static/fonts/roboto/v11/2UX7WLTfW3W8T
clTUvlFyQ.woff)
format('woff');
}
@font-face {
font-family: 'Roboto';
font-style: normal;
131 | P a g e
;font-weight: 700
src: local('Roboto Bold'),
local('Roboto-Bold'),
url(http://themes.googleusercontent.com/static/fonts/roboto/v11/d-
)6IYplOFocCacKzxwXSOD8E0i7KZn-EPnyo3HZu7kw.woff
;)'format('woff
}
{ @font-face
;'font-family: 'Roboto
;font-style: italic
;font-weight: 400
src: local('Roboto Italic'),
local('Roboto-Italic'),
url(http://themes.googleusercontent.com/static/fonts/roboto/v11/1pO9eUAp8pSF8
)VnRTP3xnvesZW2xOQ-xsNqO47m55DA.woff
;)'format('woff
}
يمكنك اآلن استخدام أنماط الخطوط الثالثة هذه في صفحة HTMLالخاصة بك عن طريق تعيين نمط الخط ووزن الخط المستخدم في تعريفات
خطوط الويب .على سبيل المثال ،الستخدام النسخة المائلة من الخط ،يمكنك كتابة هذا:
{ p
;font-family: Roboto
;font-style : italic
;font-weight: 400
}
كما ترون ،تتطابق هذه اإلعدادات مع إعدادات مجموعة الخطوط ونمط الخط ووزن الخط المعلنة لإلصدار المائل من الخط .إليك كيفية ظهور النص
عند عرضه باستخدام اإلصدار المائل لخط الويبRoboto:
تشير سمة srcلإلعالن @font-faceإلى مصدر خط الويب (ملف خط الويب) .تحتوي سمة srcعلى ثالث معلمات مختلفة:
local
url
format
المعلمة المحلية هي اسم الخط كما سيتم استدعاؤه إذا كان خط الويب مثبتًا محليًا بالفعل على الجهاز .في حالة عثور المتصفح على خط ويب محلي
بهذا االسم ،فلن يحتاج المتصفح إلى تنزيل ملف خطوط الويب .يؤدي هذا إلى تسريع تنزيل الصفحة.
كما ترون ،كل إصدار من الخط له اسمه المحلي الخاص .على سبيل المثال'Roboto Regular' ،و ''Roboto Boldو 'Roboto
Italic'.وذلك ألن كل إصدار من الخط يتم تعريفه بشكل صريح كخط منفصل في الملف الخاص به .وبالتالي ،يتم استخدام 'Roboto
132 | P a g e
كما ترون أيضًا ،كل إصدار من الخط له في الواقع اسمان محليان .االسم األول هو االسم العادي للخط ،واالسم الثاني هو اسم PostScript
للخط .تحتاج بعض األنظمة األساسية إلى اسم PostScriptللتعرف على الخط .لذلك ،يمكنك تحديد االسم العادي للخط واسم PostScript
باستخدام معلمتين محليتين.
تحتوي معلمة urlببساطة على عنوان URLلملف خط الويب ،تما ًما مثل عنوان URLلملف صورة.
تخبر معلمة التنسيق formatالذي تم ترميز خط الويب فيه داخل ملف خط الويب .يجب أن يخبرك موفر ملف خط الويب بالتنسيقformat
الذي تم ترميز ملف خط الويب به.
نظرا ألن خطوط الويب الخاصة بـ Googleمجانية ولديها عدد كبير جدًا ،فهناك احتمال كبير بأن ينتهي بك األمر إلى استخدام خطوط الويب
ً
الخاصة بـ Googleيو ًما ما .عند استخدام خط ويب ، Googleيمكنك اختياره من موقع خطوط ، Googleثم النقر فوق الزر 'استخدام' .ثم
ستزودك Googleبـ CSSالستخدامه.
أمرا سهالًّ ،إال أنه يؤدي إلى طلب إضافي للشبكة .أوالًّ ،يحتاج المتصفح إلى
على الرغم من أن إدراج عنصر الرابط في عنصر رأسك قد يكون ً
تنزيل ملف CSSبتعريف( @font-faceالملف يشير إلى عنصر الرابط) .ثم يحتاج المتصفح إلى تنزيل ملف خط الويب نفسه المشار إليه
من تعريف@font-face.
الً من تضمين عنصر الرابط الذي يقدمه لك ،Googleيمكنك فتح ملف CSSالذي يشير إليه عنصر الرابط في المتصفح (عنوان URL بد ّ
الموجود داخل سمة hrefلعنصر الرابط) .ثم يمكنك نسخ ملف( CSSتعريف (تعريفات ) ) @font-faceإلى ملف CSSالخاص بك.
وبهذه الطريقة يمكنك حفظ طلب الشبكة لتنزيل ملف صغير جدًا .اآلن يتعين على المتصفح فقط تنزيل ملف CSSوملف خط الويب.