What Is CSS ?: Dr. Muhammad Ahmed Muhammad Abd Al-Rahman Auf
What Is CSS ?: Dr. Muhammad Ahmed Muhammad Abd Al-Rahman Auf
What is CSS ?
CSS هي اختصار لـCascading Style Sheets . وهي لغة تنسيقية ُت ستخَد م لإضفاء مظهر جمالي على صفحات الويب،أو الأنماط الإنسيابية
تسمحCSS تعمل. بالتحكم في خصائص مثل الألوان والخطوط والخلفيات والتخطيط والحركات وغيرها من العناصر البصريةCSS معHTML و
JavaScript لإنشاء صفحات وتطبيقات ويب متفاعلة ومبتكرة. 🌐
Dr. Muhammad Ahmed Muhammad Abd al-Rahman Auf
CSS
CSS Syntax
CSS Selectors
CSS How To
CSS Comments
CSS Colors
CSS Backgrounds
CSS Borders
CSS Margins
CSS Padding
CSS Height/Width
CSS Box Model
CSS Outline
CSS Text
CSS Fonts
CSS Icons
CSS Links
CSS Lists
CSS Tables
CSS Display
CSS Max-width
CSS Position
CSS Z-index
CSS Overflow
CSS Float
CSS Inline-block
CSS 1
CSS Align
CSS Combinators
CSS Pseudo-class
CSS Pseudo-element
CSS Opacity
CSS Navigation Bar
CSS Dropdowns
CSS Image Gallery
CSS Image Sprites
CSS Attr Selectors
CSS Forms
CSS Counters
CSS Website Layout
CSS Units
CSS Specificity
CSS !important
CSS Math Functions
CSS Advanced
CSS Rounded Corners
CSS Border Images
CSS Backgrounds
CSS Color Keywords
CSS Gradients
CSS Shadows
CSS Text Effects
CSS Web Fonts
CSS 2D Transforms
CSS 3D Transforms
CSS Transitions
CSS Animations
CSS Tooltips
CSS Style Images
CSS Image Reflection
CSS object-fit
CSS object-position
CSS Masking
CSS Buttons
CSS Pagination
CSS Multiple Columns
CSS User Interface
CSS Variables
CSS Box Sizing
CSS Media Queries
CSS Flexbox
CSS Grid
CSS Syntax
CSS 2
يتضمن كل إعالن اسم خاصية CSS .وقيمة ،مفصولة بنقطتين
يتم فصل إعالنات CSS .المتعددة بفواصل منقوطة ،وتحاط كتل الإعالنات بأقواس متعرجة
{ p
;color: red
;text-align: center
}
وأوضح المثال
: <p>).الذي تريد تصميمه HTMLيشير إلى عنصر( CSSهو محدد في p
اللون هو خاصية ،والأحمر هو قيمة الخاصية
محاذاة النص هي خاصية ،والمركز هو قيمة الخاصية
CSS Selectors
يقوم محدد CSS بتحديد عنصر (عناصر) HTML .الذي تريد تصميمه
CSS Selectors
يتم استخدام محددات CSS للبحث" (أو تحديد) عناصر" HTML .التي تريد تصميمها
يقوم محدد العنصر بتحديد عناصر HTML .بناًء على اسم العنصر
مثال
هنا ،سيتم محاذاة جميع عناصر ><p :الموجودة في الصفحة إلى المنتصف ،مع لون نص أحمر
{ p
;text-align: center
CSS 3
;color: red
}
يستخدم محدد المعرف سمة المعرف لعنصر HTML .لتحديد عنصر معين
!معرف العنصر فريد داخل الصفحة ،لذلك يتم استخدام محدد المعرف لتحديد عنصر فريد واحد
.لتحديد عنصر بمعرف محدد ،اكتب رمز التجزئة ( ،)#متبوًع ا بمعرف العنصر
مثال
سيتم تطبيق قاعدة CSS أدناه على عنصر HTML = " para1 ":بالمعرف
{ #para1
;text-align: center
;color: red
}
يقوم محدد الفئة بتحديد عناصر HTML .ذات سمة فئة معينة
.لتحديد عناصر ذات فئة معينة ،اكتب حرف النقطة ( ،).متبوًع ا باسم الفئة
مثال
في هذا المثال ،ستكون جميع عناصر HTML :باللون الأحمر ومحاذاتها للوسط " = " centerذات الفئة
{ .center
;text-align: center
;color: red
}
يمكنك أيًض ا تحديد أن عناصر HTML .المحددة فقط هي التي يجب أن تتأثر بالفئة
مثال
في هذا المثال ،ستكون عناصر ><p :فقط باللون الأحمر ومحاذاتها للوسط " = " centerذات الفئة
{ p.center
;text-align: center
;color: red
}
CSS 4
The CSS Universal Selector
يقوم المحدد العام (*) بتحديد كافة عناصر HTML .الموجودة في الصفحة
مثال
ستؤثر قاعدة CSS أدناه على كل عنصر HTML :في الصفحة
{ *
;text-align: center
;color: blue
}
يقوم محدد التجميع بتحديد كافة عناصر HTML .التي لها نفس تعريفات النمط
انظر إلى كود CSS العناصر( التالي pو h2و h1 ):لها نفس تعريفات النمط
{ h1
;text-align: center
;color: red
}
{ h2
;text-align: center
;color: red
}
{ p
;text-align: center
;color: red
}
CSS 5
* * يختار كافة العناصر
element.element div, p > <pوجميع عناصر > <divتحديد جميع عناصر
element element div p > <divداخل عناصر > <pتحديد جميع عناصر
element>element div > p > <divحيث يكون الأصل عنصًر ا > <pيحدد جميع عناصر
element +element div + p > <divالأول الذي يتم وضعه مباشرة بعد عناصر > <pتحديد العنصر
][attribute~=value ]"[title~="flower ”تحديد كافة العناصر ذات سمة العنوان التي تحتوي على كلمة "زهرة
أو " "enالتي تساوي langيحدد كافة العناصر ذات قيمة سمة
][attribute|=value ]"[lang|="en
” "en-بدءًا بـ
][attribute^=value ]"a[href^="https ” "httpsالخاصة به بـ hrefتبدأ قيمة سمة > <aتحديد كل عنصر
][attribute$=value ]"a[href$=".pdf ” ".pdfالخاصة به بـ hrefتنتهي قيمة سمة > <aتحديد كل عنصر
][attribute*=value ]"a[href*="udemy ” "udemyعلى السلسلة الفرعية hrefتحتوي قيمة سمة > <aتحديد كل عنصر
:empty p:empty لا يحتوي على عناصر فرعية (بما في ذلك العقد النصية) > <pتحديد كل عنصر
:first-of-type p:first-of-type الأول من أصله > <pيمثل العنصر > <pتحديد كل عنصر
:in-range input:in-range تحديد عناصر الإدخال ذات القيمة ضمن نطاق محدد
:invalid input:invalid تحديد جميع عناصر الإدخال ذات القيمة غير الصالحة
:last-child p:last-child الذي يمثل العنصر الفرعي الأخير لوالده > <pيحدد كل عنصر
:last-of-type p:last-of-type الأخير في الأصل > <pيمثل العنصر > <pتحديد كل عنصر
):nth-last-child(n )p:nth-last-child(2 يمثل الابن الثاني لوالده ،ويتم العد من الطفل الأخير > <pتحديد كل عنصر
p:nth-last-of- الثاني لوالده ،ويتم العد من العنصر الفرعي > <pيمثل العنصر > <pيحدد كل عنصر
):nth-last-of-type(n
)type(2 الأخير
):nth-of-type(n )p:nth-of-type(2 الثاني من أصله > <pيمثل العنصر > <pتحديد كل عنصر
:only-of-type p:only-of-type الوحيد من أصله > <pوهو العنصر > <pيحدد كل عنصر
:only-child p:only-child الذي يعتبر الابن الوحيد لوالده > <pتحديد كل عنصر
:optional input:optional ".تحديد عناصر الإدخال التي لا تحتوي على سمة "مطلوبة
CSS 6
:out-of-range input:out-of-range تحديد عناصر الإدخال بقيمة خارج نطاق محدد
:read-only input:read-only تحديد عناصر الإدخال ذات السمة "للقراءة فقط" المحددة
:read-write input:read-write تحديد عناصر الإدخال ذات السمة "للقراءة فقط" غير المحددة
الذي يحتوي على اسم URLالنقر فوق عنوان( النشط الحالي #newsتحديد عنصر
:target #news:target
)المرساة هذا
الخارجية CSS
الداخلي CSS
CSSمضمنة
External CSS
!باستخدام ورقة الأنماط الخارجية ،يمكنك تغيير مظهر موقع الويب بأكمله عن طريق تغيير ملف واحد فقط
يجب أن تتضمن كل صفحة HTML مرج ًع ا لملف ورقة الأنماط الخارجية داخل عنصر ><link .داخل قسم الرأس ،
مثال
يتم تعريف الأنماط الخارجية ضمن عنصر ><link داخل قسم ، ><head في صفحة HTML :
><!DOCTYPE html
><html
><head
>"<link rel="stylesheet" href="mystyle.css
></head
><body
><h1>This is a heading</h1
><p>This is a paragraph.</p
></body
></html
CSS 7
. css .يمكن كتابة ورقة الأنماط الخارجية في أي محرر نصوص ،ويجب حفظها بامتداد
الخارجي على أية عالمات . cssيجب ألا يحتوي ملف HTML .
إليك كيف يبدو الملف ""mystyle.css :
{ body
;background-color: lightblue
}
{ h1
;color: navy
;margin-left: 20px
}
Internal CSS
يمكن استخدام ورقة الأنماط الداخلية إذا كانت صفحة HTML .واحدة تحتوي على نمط فريد
يتم تعريف النمط الداخلي داخل عنصر ><style .داخل قسم الرأس ،
مثال
يتم تعريف الأنماط الداخلية ضمن عنصر ><style داخل قسم ، ><head في صفحة HTML :
><!DOCTYPE html
><html
><head
><style
{ body
;background-color: linen
}
{ h1
;color: maroon
;margin-left: 40px
}
></style
></head
><body
><h1>This is a heading</h1
><p>This is a paragraph.</p
></body
></html
Inline CSS
.يمكن استخدام النمط المضّم ن لتطبيق نمط فريد على عنصر واحد
CSS 8
لاستخدام الأنماط المضمنة ،قم بإضافة سمة النمط إلى العنصر ذي الصلة .يمكن أن تحتوي سمة النمط على أي خاصية CSS .
مثال
:يتم تعريف الأنماط المضمنة ضمن سمة "النمط" للعنصر ذي الصلة
><!DOCTYPE html
><html
><body
></body
></html
CSS Comments
.في المتصفح ،ولكنها يمكن أن تساعد في توثيق التعليمات البرمجية المصدر الخاصة بك CSSلا يتم عرض تعليقات
CSS Comments
ُ.ت ستخدم التعليقات لشرح التعليمات البرمجية ،وقد تساعدك عندما تقوم بتحرير التعليمات البرمجية المصدر في وقت لاحق
.يتم تجاهل التعليقات من قبل المتصفحات
يتم وضع تعليق CSS داخل العنصر ><style وينتهي بـ ، */ ويبدأ بـ */ :
CSS Colors
يتم تحديد الألوان باستخدام أسماء الألوان المحددة مسبًق ا ،أو قيم RGB ، HEXو ، HSLو ، RGBAو ، HSLAو .
CSS 9
CSS Background Color
يمكنك ضبط لون الخلفية لعناصر HTML :
RGB Value
في CSS ، يمكن تحديد اللون كقيمة RGB ، باستخدام هذه الصيغة:
CSS 10
على سبيل المثال ،يتم عرض rgb ( 255 , 0 , 0 باللون الأحمر ،لأنه تم تعيين اللون الأحمر على أعلى قيمة له ( ) 255وتم تعيين القيم الأخرى )
.على 0
،مثل هذا 0 :لعرض اللون الأسود ،قم بتعيين كافة معلمات الألوان على rgb (0, 0 , 0 ).
،مثل هذا 255 :لعرض اللون الأبيض ،اضبط كافة معلمات الألوان على rgb ( 255 , 255 , 255 ).
قم بالتجربة عن طريق مزج قيم RGB :أدناه
RGBA Value
تعد قيم ألوان RGBA امتداًد ا لقيم ألوان RGB .مع قناة ألفا -والتي تحدد عتامة اللون
يتم تحديد قيمة لون RGBA :باستخدام
(غير شفاف على الإطالق) 1.0 (شفاف تماًم ا) و 0.0 :معلمة ألفا هي رقم يقع بين
HEX Value
في CSS :يمكن تحديد اللون باستخدام قيمة سداسية عشرية في النموذج ،
#rrggbb
حيث rr )،أحمر ( gg و ) أخضر ( bb ) أزرق ( 00و ).مثل العالمة العشرية ff ( 255 - 0هي قيم سداسية عشرية تتراوح بين
على سبيل المثال ،يتم عرض #ff0000 ويتم تعيين الألوان الأخرى على أدنى ) ( ffباللون الأحمر ،لأنه تم تعيين اللون الأحمر على أعلى قيمة له
.قيمة ( ) 00
000000 ،مثل هذا# : 00 .لعرض اللون الأسود ،اضبط كافة القيم على
لعرض اللون الأبيض ،قم بتعيين كافة القيم على ff :مثل هذا ، #ffffff .
قم بالتجربة عن طريق خلط قيم HEX :أدناه
CSS 11
#rgb
حيث تمثل bو gو r و 0 f .المكونات الحمراء والخضراء والزرقاء بقيم تتراوح بين
لا يمكن استخدام الرمز السداسي المكون من 3أرقام إلا عندما تكون القيم )BBو GGو (RR هي نفسها لكل مكون .لذا ،إذا كان لدينا #ff00cc ،
: #f0c .فيمكن كتابته على النحو التالي
:هنا مثال
{ body
background-color: #fc9; /* same as #ffcc99 */
}
{ h1
color: #f0f; /* same as #ff00ff */
}
{ p
color: #b58; /* same as #bb5588 */
}
HSL Value
في CSS :في النموذج ) (HSLيمكن تحديد اللون باستخدام الصبغة والتشبع والخفة ،
Hue أزرق 240 أخضر، 120 إلى 0 . 360أحمر، 0 .هي درجة على عجلة الألوان من
يعني الظل الرمادي ،و %100هو اللون الكامل %0 .التشبع هو قيمة مئوية.
أبيض %100 ليس فاتًح ا أو داكًن ا، %50 أسود، %0 الخفة هي أيضا نسبة مئوية.
قم بالتجربة عن طريق خلط قيم HSL :أدناه
CSS Backgrounds
ُت ستخدم خصائص الخلفية في CSS .لإضافة تأثيرات الخلفية للعناصر
CSS 12
CSS background-color
.تحدد خاصية لون الخلفية لون خلفية العنصر
{ body
;background-color: lightblue
}
Opacity / Transparency
إلى . 1.0كلما كانت القيمة أقل ،كلما كانت أكثر شفافية 0.0 :تحدد خاصية العتامة عتامة/شفافية العنصر .يمكن أن تأخذ قيمة من
{ div
;background-color: green
;opacity: 0.3
}
{ p
;)"background-image: url("paper.gif
}
CSS 13
body{
background-image: url("photo.jpg");
}
هكذا، وإلا ستبدو غريبة،بعض الصور يجب أن تتكرر أفقيًا أو رأسيًا فقط:
body {
background-image: url("gradient_bg.png");
}
إذا تم تكرار الصورة أعاله أفقًي ا فقط (background-repeat: repeat-x;) ، فستبدو الخلفية أفضل:
body {
background-image: url("gradient_bg.png");
background-repeat: repeat-x;
}
يتم أيًض ا تحديد عرض صورة الخلفية مرة واحدة فقط بواسطة
background-repeat
body {
background-image: url("img_tree.png");
background-repeat: no-repeat;
}
CSS background-position
body {
background-image: url("img_tree.png");
background-repeat: no-repeat;
CSS 14
background-position: right top;
}
CSS background-attachment
)ما إذا كان يجب تمرير صورة الخلفية أو تثبيتها (لن يتم التمرير مع بقية الصفحة الخلفية المرفقة تحدد خاصية:
حدد أن صورة الخلفية يجب أن تكون ثابتة:
body {
background-image: url("img_tree.png");
background-repeat: no-repeat;
background-position: right top;
background-attachment: fixed;
}
body {
background-image: url("img_tree.png");
background-repeat: no-repeat;
background-position: right top;
background-attachment: scroll;
}
Property Values
Value Description
CSS 15
{ #example1
;border: 10px dashed black
;padding: 25px
;)background: url(paper.gif
;background-repeat: no-repeat
;background-origin: content-box
}
التعريف والاستخدام
.تحدد خاصية الخلفية الأصل الموضع الأصلي (منطقة تحديد موضع الخلفية) لصورة الخلفية
Property Values
Value Description
padding-box القيمة الافتراضية .تبدأ صورة الخلفية من الزاوية اليسرى العليا لحافة الحشو
{ div
;border: 10px dotted black
;padding: 15px
;background: lightblue
;background-clip: padding-box
}
التعريف والاستخدام
الصورة ) داخل العنصر اللون أو .تحدد خاصية مقطع الخلفية المدى الذي يجب أن تمتد به الخلفية (
Property Values
Value Description
padding-box القيمة الافتراضية .تبدأ صورة الخلفية من الزاوية اليسرى العليا لحافة الحشو
CSS 16
CSS background-size Property
{ #example1
;)background: url(mountain.jpg
;background-repeat: no-repeat
;background-size: auto
}
{ #example2
;)background: url(mountain.jpg
;background-repeat: no-repeat
;background-size: 300px 100px
}
التعريف والاستخدام
CSS Borders
تسمح لك خصائص حدود CSS .بتحديد نمط وعرض ولون حدود العنصر
CSS 17
dotted يحدد الحدود المنقطة -
groove يحدد حدوًد ا محززة ثالثية الأبعاد .يعتمد التأثير على قيمة لون الحدود -
ridge يحدد حدوًد ا ثالثية الأبعاد .يعتمد التأثير على قيمة لون الحدود -
inset يحدد الحدود الداخلية ثالثية الأبعاد .يعتمد التأثير على قيمة لون الحدود -
outset يحدد حدود البداية ثالثية الأبعاد .يعتمد التأثير على قيمة لون الحدود -
The border-style
.يمكن أن تحتوي الخاصية على قيمة واحدة إلى أربع قيم (للحد العلوي ،والحد الأيمن ،والحد السفلي ،والحد الأيسر)
{ p.one
;border-style: solid
;border-width: 5px
}
{ p.two
;border-style: solid
;border-width: medium
}
CSS 18
p.three {
border-style: dotted;
border-width: 2px;
}
p.four {
border-style: dotted;
border-width: thick;
}
) والحد الأيسر، والحد السفلي، والحد الأيمن،يمكن أن تحتوي الخاصية على قيمة واحدة إلى أربع قيم (للحد العلوي:
p.one {
border-style: solid;
border-width: 5px 20px; /* 5px top and bottom, 20px on the sides */
}
p.two {
border-style: solid;
border-width: 20px 5px; /* 20px top and bottom, 5px on the sides */
}
p.three {
border-style: solid;
border-width: 25px 10px 4px 35px; /* 25px top, 10px right, 4px bottom and 35px left */
}
Property Values
Value Description
CSS 19
CSS Border Color
CSS Border Color
The border-color يتم استخدام الخاصية لتعيين لون الحدود الأربعة
يمكن ضبط اللون عن طريق:
مثل "أحمر، حدد اسم اللون- "الاسم
p.one {
border-style: solid;
border-color: red;
}
p.two {
border-style: solid;
border-color: green;
}
p.three {
border-style: dotted;
border-color: blue;
}
border-color ) والحد الأيسر، السفلي والحد، الأيمن والحد، العلوي يمكن أن تحتوي الخاصية على قيمة واحدة إلى أربع قيم (للحد.
p.one {
border-style: solid;
border-color: red green blue yellow; /* red top, green right,
blue bottom and yellow left
CSS 20
CSS Border Sides
CSS Border - Individual Sides
رأيت أنه من الممكن تحديد حدود مختلفة لكل جانب،من الأمثلة الواردة في الصفحات السابقة.
في CSS ، ) ويسار، أسفل، يمين،هناك أيًض ا خصائص لتحديد كل حد من الحدود (أعلى:
p {
border-top-style: dotted;
border-right-style: solid;
border-bottom-style: dotted;
border-left-style: solid;
}
p {
border-style: dotted solid;
}
border-style: dotted ;
/* Four values */
p {
border-style: dotted solid double dashed;
}
CSS 21
/* Three values */
p {
border-style: dotted solid double;
}
/* Two values */
p {
border-style: dotted solid;
}
/* One value */
p {
border-style: dotted;
}
هناك العديد من الخصائص التي يجب مراعاتها عند التعامل مع الحدود،كما رأيت في الصفحة السابقة.
من الممكن أيًض ا تحديد كافة خصائص الحدود الفردية في خاصية واحدة،لتقصير الكود.
الخاصية border هي خاصية مختصرة لخصائص الحدود الفردية التالية:
border-width
border-style (required)
border-color
p {
border: 5px solid red;
}
p {
border-left: 6px solid red;
}
p {
border-bottom: 6px solid red;
}
CSS 22
border-left يضبط كافة خصائص الحدود اليسرى في إعالن واحد
CSS Margins
ُ.ت ستخدم الهوامش لإنشاء مساحة حول العناصر ،خارج أي حدود محددة
CSS Margins
ُت ستخدم خصائص Margins CSS .لإنشاء مساحة حول العناصر ،خارج أي حدود محددة
مع CSS .لديك السيطرة الكاملة على الهوامش .هناك خصائص لتحديد الهامش لكل جانب من عناصر العنصر (أعلى ،يمين ،أسفل ،ويسار) ،
margin-top
margin-right
margin-bottom
CSS 23
margin-left
.يمكنك ضبط خاصية الهامش على الوضع التلقائي لتوسيط العنصر أفقًي ا داخل الحاوية الخاصة به
.سيأخذ العنصر بعد ذلك العرض المحدد ،وسيتم تقسيم المساحة المتبقية بالتساوي بين الهامش الأيسر والأيمن
Margin Collapse
.يتم أحياًن ا طي الهوامش العلوية والسفلية للعناصر في هامش واحد يساوي أكبر الهامشين
!هذا لا يحدث على الهوامش اليسرى واليمنى! الهوامش العلوية والسفلية فقط
:ننظر إلى المثال التالي
{ h1
;margin: 0 0 50px 0
}
{ h2
;margin: 20px 0 0 0
}
CSS 24
CSS Padding
يتم استخدام padding .لإنشاء مساحة حول محتوى العنصر ،داخل أي حدود محددة
CSS Padding
ُت ستخدم خصائص padding في CSS .لإنشاء مساحة حول محتوى العنصر ،داخل أي حدود محددة
مع CSS ،ويسار ) ، أسفل ، يمين ، أعلى .لديك السيطرة الكاملة على الحشو .هناك خصائص لتعيين الحشو لكل جانب من العنصر (
padding-top
padding-right
padding-bottom
padding-left
The CSS height and width ُ.ت ستخدم الخصائص لتعيين ارتفاع وعرض العنصر
The CSS max-width ُ.ت ستخدم الخاصية لتعيين الحد الأقصى لعرض العنصر
CSS 25
CSS Setting height and width
:قد تحتوي الخصائص على القيم التالية The height and width
Setting max-width
وما إلى ذلك ،أو بالنسبة المئوية ( )%للكتلة التي تحتوي عليها ،أو تعيينها على cmو pxيمكن تحديدها بقيم الطول ،مثل The max-width
.لا شيء (هذا هو الإعداد الافتراضي .ويعني أنه لا يوجد حد أقصى للعرض)
بكسل) .يقوم المتصفح بعد ذلك بإضافة شريط تمرير > <divتحدث مشكلة 500 أعاله عندما تكون نافذة المتصفح أصغر من عرض العنصر (
.أفقي إلى الصفحة
max-width .بدلًا من ذلك ،في هذه الحالة ،سيتم تحسين معالجة المتصفح للنوافذ الصغيرة
CSS 26
CSS Box Model
في CSS .يتم استخدام مصطلح "نموذج الصندوق" عند الحديث عن التصميم والتخطيط ،
هو في الأساس مربع يلتف حول كل عنصر CSSنموذج مربع HTML ويتكون من :المحتوى والحشو والحدود والهوامش .الصورة أدناه توضح .
:نموذج الصندوق
:هنا هو الحساب
CSS 27
:يجب حساب الارتفاع الإجمالي للعنصر على النحو التالي
إجمالي ارتفاع العنصر = الارتفاع +الحشو العلوي +الحشو السفلي +الحد العلوي +الحد السفلي
CSS Outline
CSS Outline
مميًز ا ".المخطط التفصيلي هو خط يتم رسمه حول العناصر ،خارج الحدود ،لجعل العنصر "
outline-style
outline-color
outline-width
outline-offset
outline
The outline-style :تحدد الخاصية نمط المخطط التفصيلي ،ويمكن أن تحتوي على إحدى القيم التالية
CSS 28
dotted يحدد الحدود المنقطة -
groove يحدد حدوًد ا محززة ثالثية الأبعاد .يعتمد التأثير على قيمة لون الحدود -
ridge يحدد حدوًد ا ثالثية الأبعاد .يعتمد التأثير على قيمة لون الحدود -
inset يحدد الحدود الداخلية ثالثية الأبعاد .يعتمد التأثير على قيمة لون الحدود -
outset يحدد حدود البداية ثالثية الأبعاد .يعتمد التأثير على قيمة لون الحدود -
:تحدد الخاصية عرض المخطط التفصيلي ،ويمكن أن تحتوي على إحدى القيم التالية outline-width
Property Values
Value Description
{ p.ex1
;border: 1px solid black
;outline-style: solid
;outline-color: red
;outline-width: thin
}
{ p.ex2
;border: 1px solid black
;outline-style: solid
;outline-color: red
;outline-width: medium
}
CSS 29
p.ex1 {
outline-style: solid;
outline-color: rgb(255, 0, 0); /* red */
}
p.ex1 {
outline-style: solid;
outline-color: hsl(0, 100%, 50%); /* red */
}
خاصية المخطط التفصيلي هي خاصية مختصرة لتعيين خصائص المخطط التفصيلي الفردية التالية:
p {
margin: 30px;
border: 1px solid black;
outline: 1px solid red;
outline-offset: 15px;
}
p {
margin: 30px;
background: yellow;
border: 1px solid black;
outline: 1px solid red;
outline-offset: 15px;
}
CSS 30
All CSS Outline Properties
Property Description
CSS Text
.على الكثير من الخصائص لتنسيق النص CSSيحتوي
Text Color
:يتم استخدام خاصية اللون لتعيين لون النص .يتم تحديد اللون بواسطة
{ body
;color: blue
}
{ h1
;color: green
}
{ body
;background-color: lightgrey
;color: blue
}
{ h1
;background-color: black
CSS 31
;color: white
}
{ div
;background-color: blue
;color: white
}
text-align
text-align-last
direction
unicode-bidi
vertical-align
Text Alignment
.يتم استخدام خاصية محاذاة النص لضبط المحاذاة الأفقية للنص
.يمكن محاذاة النص إلى اليسار أو اليمين أو توسيطه أو ضبطه
يوضح المثال التالي محاذاة للوسط ،ومحاذاة لليسار ولليمين (تكون المحاذاة لليسار افتراضية إذا كان اتجاه النص من اليسار إلى اليمين،
:وتكون المحاذاة لليمين افتراضية إذا كان اتجاه النص من اليمين إلى اليسار)
{ h1
;text-align: center
}
{ h2
;text-align: left
}
{ h3
;text-align: right
}
تم ضبط الخاصية على "ضبط" ،ويتم تمديد كل سطر بحيث يكون لكل سطر عرض متساٍو ،وتكون الهوامش اليمنى واليسرى
text-align
{ div
;text-align: justify
}
CSS 32
text-align-last تحدد الخاصية كيفية محاذاة السطر الأخير من النص.
p.a {
text-align-last: right;
}
p.b {
text-align-last: center;
}
p.c {
text-align-last: justify;
}
Text Direction
direction and unicode-bidi يمكن استخدام الخصائص لتغيير اتجاه النص لعنصر ما:
p {
direction: rtl;
unicode-bidi: bidi-override;
}
Vertical Alignment
vertical-align تحدد الخاصية المحاذاة الرأسية للعنصر.
img.a {
vertical-align: baseline;
}
img.b {
vertical-align: text-top;
}
img.c {
vertical-align: text-bottom;
}
img.d {
vertical-align: sub;
}
img.e {
vertical-align: super;
}
CSS 33
CSS Text Decoration
Text Decoration
ستتعرف في هذا الفصل على الخصائص التالية:
text-decoration-line
text-decoration-color
text-decoration-style
text-decoration-thickness
text-decoration
text-decoration-line
مثل الخط العلوي والتسطير لعرض الخطوط فوق النص وتحته،يمكنك دمج أكثر من قيمة واحدة.
h1 {
text-decoration-line: overline;
}
h2 {
text-decoration-line: line-through;
}
h3 {
text-decoration-line: underline;
}
p {
text-decoration-line: overline underline;
}
h1 {
text-decoration-line: overline;
text-decoration-color: red;
}
h2 {
text-decoration-line: line-through;
text-decoration-color: blue;
}
h3 {
CSS 34
text-decoration-line: underline;
text-decoration-color: green;
}
p {
text-decoration-line: overline underline;
text-decoration-color: purple;
}
h1 {
text-decoration-line: underline;
text-decoration-style: solid;
}
h2 {
text-decoration-line: underline;
text-decoration-style: double;
}
h3 {
text-decoration-line: underline;
text-decoration-style: dotted;
}
p.ex1 {
text-decoration-line: underline;
text-decoration-style: dashed;
}
p.ex2 {
text-decoration-line: underline;
text-decoration-style: wavy;
}
p.ex3 {
text-decoration-line: underline;
text-decoration-color: red;
text-decoration-style: wavy;
}
h1 {
text-decoration-line: underline;
text-decoration-thickness: auto;
}
CSS 35
h2 {
text-decoration-line: underline;
text-decoration-thickness: 5px;
}
h3 {
text-decoration-line: underline;
text-decoration-thickness: 25%;
}
p {
text-decoration-line: underline;
text-decoration-color: red;
text-decoration-style: double;
text-decoration-thickness: 5px;
}
text-decoration-line (required)
text-decoration-color (optional)
text-decoration-style (optional)
text-decoration-thickness (optional)
h1 {
text-decoration: underline;
}
h2 {
text-decoration: underline red;
}
h3 {
text-decoration: underline red double;
}
p {
text-decoration: underline red double 5px;
}
A Small Tip
يتم وضع خط تحت كافة الروابط فيHTML لا شيء؛: زخرفة النص. في بعض الأحيان ترى أن الروابط مصممة بدون تسطير.بشكل افتراضي
مثل هذا،يستخدم لإزالة التسطير من الروابط:
a {
text-decoration: none;
}
CSS 36
CSS Text Transformation
Text Transformation
p.uppercase {
text-transform: uppercase;
}
p.lowercase {
text-transform: lowercase;
}
p.capitalize {
text-transform: capitalize;
}
Text Spacing
ستتعرف في هذا الفصل على الخصائص التالية:
text-indent
letter-spacing
line-height
word-spacing
white-space
Text Indentation
text-indent ُت ستخدم الخاصية لتحديد المسافة البادئة للسطر الأول من النص:
p {
text-indent: 50px;
}
Letter Spacing
أ أ
CSS 37
:يوضح المثال التالي كيفية زيادة أو تقليل المسافة بين الأحرف
{ h1
;letter-spacing: 5px
}
{ h2
;letter-spacing: -2px
}
Line Height
line-height ُ:ت ستخدم الخاصية لتحديد المسافة بين الأسطر
{ p.small
;line-height: 0.8
}
{ p.big
;line-height: 1.8
}
Word Spacing
{ p.one
;word-spacing: 10px
}
{ p.two
;word-spacing: -2px
}
White Space
white-space .تحدد الخاصية كيفية التعامل مع المسافة البيضاء داخل العنصر
:يوضح هذا المثال كيفية تعطيل التفاف النص داخل عنصر
{ p
;white-space: nowrap
}
CSS 38
CSS Text Shadow
Text Shadow
text-shadow الخاصية تضيف الظل إلى النص.
) بكسل2( بكسل) والظل الرأسي2( يمكنك فقط تحديد الظل الأفقي،في أبسط استخدام:
h1 {
text-shadow: 2px 2px;
}
h1 {
text-shadow: 2px 2px red;
}
h1 {
text-shadow: 2px 2px 5px red;
}
h1 {
color: white;
text-shadow: 2px 2px 4px #000000;
}
h1 {
text-shadow: 0 0 3px #ff0000;
}
h1 {
text-shadow: 0 0 3px #ff0000, 0 0 5px #0000ff;
}
h1 {
color: white;
text-shadow: 1px 1px 2px black, 0 0 25px blue, 0 0 5px darkblue;
}
CSS 39
CSS Fonts
!من المهم اختيار الخط المناسب لموقعك الإلكتروني
.تنتمي جميع أسماء الخطوط المختلفة إلى إحدى عائالت الخطوط العامة
CSS 40
The CSS font-family Property
font-family يجب أن تحتوي الخاصية على عدة أسماء خطوط كنظام "احتياطي" ،لضمان أقصى قدر من التوافق بين المتصفحات/أنظمة
التشغيل .ابدأ بالخط الذي تريده ،وانتهي بعائلة عامة (للسماح للمتصفح باختيار خط مماثل في العائلة العامة ،في حالة عدم توفر خطوط
أخرى) .يجب فصل أسماء الخطوط بفاصلة .اقرأ المزيد عن الخطوط الاحتياطية في
{ .p1
;font-family: "Times New Roman", Times, serif
}
{ .p2
;font-family: Arial, Helvetica, sans-serif
}
{ .p3
;font-family: "Lucida Console", "Courier New", monospace
}
.خطوط الويب الآمنة هي خطوط مثبتة عالمًي ا عبر جميع المتصفحات والأجهزة
CSS 41
Fallback Fonts
.ومع ذلك ،لا توجد خطوط آمنة تماًم ا للويب بنسبة . %100هناك دائًم ا احتمال عدم العثور على الخط أو عدم تثبيته بشكل صحيح
.لذلك ،من المهم جًد ا استخدام الخطوط الاحتياطية دائًم ا
هذا يعني أنه يجب عليك إضافة قائمة "بالخطوط الاحتياطية" المشابهة في خاصية عائلة الخطوط .إذا لم يعمل الخط الأول ،فسيقوم
.المتصفح بتجربة الخط التالي ،ثم الخط التالي ،وهكذا .قم دائًم ا بإنهاء القائمة باسم عائلة الخطوط العامة
مثال
:يوجد هنا ثالثة أنواع من الخطوط Tahoma الخطان الثاني والثالث هما نسخ احتياطية ،في حالة عدم العثور على sans-serif.و Verdanaو
.الخط الأول
{ p
;font-family: Tahoma, Verdana, sans-serif
}
)Verdana (sans-serif
)Tahoma (sans-serif
)Trebuchet MS (sans-serif
)Georgia (serif
)Garamond (serif
Serif
Sans-serif
Monospace
Cursive
Fantasy
CSS 42
p.normal {
font-style: normal;
}
p.italic {
font-style: italic;
}
p.oblique {
font-style: oblique;
}
Font Weight
p.normal {
font-weight: normal;
}
p.thick {
font-weight: bold;
}
Font Variant
font-variant تحدد الخاصية ما إذا كان يجب عرض النص بخط صغير الحجم أم لا.
تظهر الأحرف الكبيرة المحولة بحجم خط أصغر من الأحرف، ومع ذلك. يتم تحويل كافة الأحرف الصغيرة إلى أحرف كبيرة،في الخط الصغير
الكبيرة الأصلية في النص.
p.normal {
font-variant: normal;
}
p.small {
font-variant: small-caps;
}
Font Size
font-size الخاصية تحدد حجم النص.
CSS 43
تعد القدرة على إدارة حجم النص أمًر ا مهًم ا في تصميم الويب .ومع ذلك ،يجب ألا تستخدم تعديالت حجم الخط لجعل الفقرات تبدو مثل
.العناوين ،أو العناوين تبدو مثل الفقرات
استخدم دائًم ا عالمات HTML المناسبة ،مثل ><h1> - <h6 .للفقرات ><pللعناوين و
.يمكن أن تكون قيمة حجم الخط حجًم ا مطلًق ا أو نسبًي ا
:الحجم المطلق
:الحجم النسبي
{ h1
;font-size: 40px
}
{ h2
;font-size: 30px
}
{ p
;font-size: 14px
}
{ h1
font-size: 2.5em; /* 40px/16=2.5em */
}
{ h2
font-size: 1.875em; /* 30px/16=1.875em */
}
{ p
font-size: 0.875em; /* 14px/16=0.875em */
}
CSS 44
{ body
;font-size: 100%
}
{ h1
;font-size: 2.5em
}
{ h2
;font-size: 1.875em
}
{ p
;font-size: 0.875em
}
Google Fonts
إذا كنت لا تريد استخدام أي من الخطوط القياسية في HTML Google.فيمكنك استخدام خطوط ،
خطوط Google 1000خط لالختيار من بينها .مجانية الاستخدام ،ولديها أكثر من
CSS 45
EX.
Here, we want to use a font named "Sofia" from Google Fonts:
<head>
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Sofia">
<style>
body {
font-family: "Sofia", sans-serif;
}
</style>
</head>
<head>
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Trirong">
<style>
body {
font-family: "Trirong", serif;
}
</style>
</head>
<head>
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family
=Audiowide|Sofia|Trirong">
<style>
h1.a {font-family: "Audiowide", sans-serif;}
h1.b {font-family: "Sofia", sans-serif;}
h1.c {font-family: "Trirong", serif;}
</style>
</head>
<head>
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=
Sofia&effect=fire">
CSS 46
><style
{ body
;font-family: "Sofia", sans-serif
;font-size: 30px
}
></style
></head
><body
></body
تكملة 1.
.من الآمن دائًم ا العثور على أزواج الخطوط التي تكمل بعضها البعض
.يجب أن تكون مجموعة الخطوط الرائعة متناغمة ،دون أن تكون متشابهة أو مختلفة جًد ا
استخدم عائالت الخطوط الفائقة 2.
عائلة الخطوط الفائقة هي مجموعة من الخطوط المصممة للعمل بشكل جيد م ًع ا .لذلك ،يعد استخدام خطوط مختلفة ضمن نفس العائلة
.أمًر ا آمًن ا
على سبيل المثال ،تحتوي عائلة Lucida :الفائقة على الخطوط التالية Lucida Sans Lucidaو Serif Lucida Typewriter Sansو Lucidaو
Typewriter Serif Lucidaو Math .
التباين هو الملك 3.
.غالًب ا ما يتعارض الخطان المتشابهان جًد ا .ومع ذلك ،فإن التباينات ،إذا تمت بالطريقة الصحيحة ،تبرز الأفضل في كل خط
مثال :الجمع بين serif sansو serif .هو مزيج معروف
تتضمن العائلة الفائقة القوية كال من أشكال serif sansو serif مثل( لنفس الخط Lucida Lucidaو Sans ).
اختر رئيًس ا واحًد ا فقط 4.
يجب أن يكون خط واحد هو الرئيس .يؤدي هذا إلى إنشاء تسلسل هرمي للخطوط الموجودة على صفحتك .يمكن تحقيق ذلك من خالل تغيير
.الحجم والوزن واللون
{ body
;background-color: black
;font-family: Verdana, sans-serif
;font-size: 16px
;color: gray
}
{ h1
;font-family: Georgia, serif
;font-size: 60px
;color: white
}
CSS 47
CSS Font Property
The CSS Font Property
.لتقصير الكود ،من الممكن أيًض ا تحديد كافة خصائص الخط الفردية في خاصية واحدة
:خاصية الخط هي خاصية مختصرة لـ
font-style
font-variant
font-weight
font-size/line-height
font-family
Example
Use font to set several font properties in one declaration:
{ p.a
;font: 20px Arial, sans-serif
}
{ p.b
;font: italic small-caps bold 12px/30px Georgia, serif
}
CSS Links
باستخدام CSS .يمكن تصميم الروابط بعدة طرق مختلفة ،
Styling Links
يمكن تصميم الروابط باستخدام أي خاصية CSS color , font-family , background , etc.
{ a
;color: hotpink
}
.بالإضافة إلى ذلك ،يمكن تصميم الروابط بشكل مختلف اعتماًد ا على الحالة التي تكون عليها
:حالات الروابط الأربعة هي
CSS 48
a:active - الرابط لحظة النقر عليه
/* unvisited link */
a:link {
color: red;
}
/* visited link */
a:visited {
color: green;
}
/* selected link */
a:active {
color: blue;
}
Text Decoration
text-decoration ُت ستخدم الخاصية في الغالب لإزالة التسطير من الروابط:
a:link {
text-decoration: none;
}
a:visited {
text-decoration: none;
}
a:hover {
text-decoration: underline;
}
a:active {
text-decoration: underline;
}
Background Color
background-color يمكن استخدام الخاصية لتحديد لون خلفية الروابط:
a:link {
background-color: yellow;
}
CSS 49
a:visited {
background-color: cyan;
}
a:hover {
background-color: lightgreen;
}
a:active {
background-color: hotpink;
}
Link Buttons
يوضح هذا المثال مثاًل ا أكثر تقدًم ا حيث نقوم بدمج العديد من خصائص CSS أزرار/لعرض الروابط كمربعات:
a:link, a:visited {
background-color: #f44336;
color: white;
padding: 14px 25px;
text-align: center;
text-decoration: none;
display: inline-block;
}
a:hover, a:active {
background-color: red;
}
CSS Lists
CSS 50
يتم تمييز عناصر القائمة بأرقام أو أحرف (<ol>) -القوائم المرتبة
{ ul.a
;list-style-type: circle
}
{ ul.b
;list-style-type: square
}
{ ol.c
;list-style-type: upper-roman
}
{ ol.d
;list-style-type: lower-alpha
}
{ ul
;)'list-style-image: url('sqpurple.gif
}
CSS 51
موضع نمط القائمة :بالخارج؛" يعني أن النقاط النقطية ستكون خارج عنصر القائمة .سيتم محاذاة بداية كل سطر من عنصر القائمة عمودًي ا".
:هذا هو الافتراضي
{ ul.a
;list-style-position: outside
}
{ ul.b
;list-style-position: inside
}
<ol> :أو > <ulافتراضية .لإزالة هذا ،أضف الهامش 0:والحشوة 0:إلى
{ ul
;list-style-type: none
;margin: 0
;padding: 0
}
{ ul
;)"list-style: square inside url("sqpurple.gif
}
EX.
{ ol
;background: #ff9999
;padding: 20px
}
{ ul
;background: #3399ff
;padding: 20px
}
CSS 52
ol li {
background: #ffe5e5;
color: darkred;
padding: 5px;
margin-left: 35px;
}
ul li {
background: #cce5ff;
color: darkblue;
margin: 5px;
}
CSS Tables
Table Borders
table, th, td {
border: 1px solid;
}
Full-Width Table
أضف،) إذا كنت بحاجة إلى جدول يمتد على الشاشة بأكملها (بعرض كامل.قد يبدو الجدول أعاله صغيًر ا في بعض الحالات width: 100% إلى
عنصر <table> :
CSS 53
{ table
;width: 100%
}
{ table
;border-collapse: collapse
}
إذا كنت تريد حدوًد ا حول الجدول فقط ،فحدد فقط خاصية الحدود لـ ><table :
{ table
;border: 1px solid
}
{ table
;width: 100%
CSS 54
}
{ th
;height: 70px
}
لإنشاء جدول يمتد لنصف الصفحة فقط ،استخدم width: 50% :
{ table
;width: 50%
}
{ td
;text-align: center
}
إلى اليسار > <thلمحاذاة المحتوى إلى اليسار ،افرض محاذاة العناصر text-align: left
{ th
;text-align: left
}
Vertical Alignment
vertical-align (likeالخاصية تحدد المحاذاة العمودية top , bottom , or middle )
للمحتوى الموجود في ><th أو ><td .
لكل من العنصرين( افتراضًي ا ،تكون المحاذاة الرأسية للمحتوى في الجدول في المنتصف ><th <td> ).و
يقوم المثال التالي بتعيين محاذاة النص الرأسي إلى الأسفل لعناصر ><td :
CSS 55
{ td
;height: 50px
;vertical-align: bottom
}
display ُ.ت ستخدم الخاصية لتحديد كيفية ظهور العنصر على صفحة الويب
كل عنصر HTML له قيمة عرض افتراضية ،اعتماًد ا على نوع العنصر .قيمة العرض الافتراضية لمعظم العناصر هي block or inline .
display ُت ستخدم الخاصية لتغيير سلوك العرض الافتراضي لعناصر HTML .
Block-level Elements
block-level يبدأ العنصر دائًم ا في سطر جديد ويشغل العرض الكامل المتاح
يمتد إلى left and right بقدر ما يستطيع
EX . block-level
><div
><h1> - <h6
><p
><form
><header
><footer
><section
Inline Elements
.لا يبدأ في سطر جديد ويشغل فقط القدر الالزم من العرض Inline Elements
CSS 56
><span
><a
><img
;Display: none
;display: none ُي ستخدم بشكل شائع مع JavaScript لإخفاء العناصر وإظهارها دون حذفها وإعادة إنشائها .قم بإلقاء نظرة على مثالنا
.الأخير في هذه الصفحة إذا كنت تريد معرفة كيف يمكن تحقيق ذلك
{ li
;display: inline
}
{ span
;display: block
}
{ a
;display: block
}
Value Description
CSS 57
flex يعرض عنصًر ا كحاوية مرنة على مستوى الكتلة
يعرض عنصًر ا كحاوية كتلة ذات مستوى مضّم ن .يتم تنسيق العنصر نفسه كمضمنة
inline-block
عنصر ،ولكن يمكنك تطبيق قيم الارتفاع والعرض
run-in يعرض عنصًر ا إما على شكل كتلة أو سطرًي ا ،اعتماًد ا على السياق
visibility
{ h1.hidden
;visibility: hidden
}
;visibility: visible|hidden|collapse|initial|inherit
Property Values
Value Description
CSS 58
inherit .يرث هذه الخاصية من العنصر الأصلي الخاص بها
static
relative
fixed
absolute
sticky
ثم يتم وضع العناصر باستخدام top , bottom , left , and right ملكيات .ومع ذلك ،فإن هذه الخصائص لن تعمل إلا إذا تم position يتم
تعيين الملكية أولا .كما أنها تعمل بشكل مختلف اعتمادا على position value.
;position: static
عنصر ذو ;position: static :لم يتم وضعه بأي طريقة خاصة؛ يتم وضعه دائًم ا وفًق ا للتدفق الطبيعي للصفحة
{ div.static
;position: static
;border: 3px solid #73AD21
}
;position: relative
top , right , bottom , and left ستؤدي خصائص العنصر ذي الموضع النسبي إلى تعديله بعيًد ا عن موضعه الطبيعي .لن يتم تعديل
.المحتوى الآخر ليناسب أي فجوة يتركها العنصر
CSS 59
{ div.relative
;position: relative
;left: 30px
;border: 3px solid #73AD21
}
;position: fixed
;position: fixed يتم وضعه بالنسبة إلى إطار العرض ،مما يعني أنه يظل دائًم ا في نفس المكان حتى إذا تم تمرير الصفحة .ال top ,
right , bottom , and left
.لا يترك العنصر الثابت فجوة في الصفحة في المكان الذي كان من المفترض أن يوجد فيه عادًة
لاحظ العنصر الثابت في الركن الأيمن السفلي من الصفحة .هنا هو CSS :المستخدم
{ div.fixed
;position: fixed
;bottom: 0
;right: 0
;width: 300px
;border: 3px solid #73AD21
}
;position: absolute
;position: absolute
.يتم وضعه بالنسبة إلى أقرب سلف متوضع (بدلًا من وضعه بالنسبة إلى إطار العرض ،مثل الثابت)
.لكن؛ إذا كان العنصر ذو الموضع المطلق ليس له أسالف محددين ،فإنه يستخدم نص المستند ،ويتحرك مع تمرير الصفحة
.مالحظة :تتم إزالة العناصر ذات الموضع المطلق من التدفق الطبيعي ،ويمكن أن تتداخل مع العناصر
{ div.relative
;position: relative
;width: 400px
;height: 200px
;border: 3px solid #73AD21
}
{ div.absolute
;position: absolute
;top: 80px
;right: 0
;width: 200px
;height: 100px
CSS 60
;border: 3px solid #73AD21
}
;position: sticky
;position: sticky يتم وضعه بناًء على موضع التمرير الخاص بالمستخدم.يتم تبديل العنصر اللزج
relative andبين fixed
اعتمادا على موقف التمرير .يتم وضعه بشكل نسبي حتى يتم استيفاء موضع إزاحة معين في إطار العرض -ثم "يلتصق" في مكانه
{ div.sticky
position: -webkit-sticky; /* Safari */
;position: sticky
;top: 0
;background-color: green
;border: 2px solid #4CAF50
}
.عندما يتم تحديد موضع العناصر ،فإنها يمكن أن تتداخل مع عناصر أخرى
تحدد الخاصية z-index .ترتيب المكدس للعنصر (العنصر الذي يجب وضعه أمام العناصر الأخرى أو خلفها)
:يمكن أن يكون للعنصر ترتيب مكدس إيجابي أو سلبي
{ img
;position: absolute
;left: 0px
;top: 0px
;z-index: -1
}
CSS 61
.black-box {
position: relative;
z-index: 1;
border: 2px solid black;
height: 100px;
margin: 30px;
}
.gray-box {
position: absolute;
z-index: 3;
background: lightgray;
height: 60px;
width: 70%;
left: 50px;
top: 50px;
}
.green-box {
position: absolute;
z-index: 2;
background: lightgreen;
width: 35%;
left: 270px;
top: -15px;
height: 100px;
}
</style>
</head>
<body>
<div class="container">
<div class="black-box">Black box</div>
<div class="gray-box">Gray box</div>
<div class="green-box">Green box</div>
</div>
</body>
</html>
Without z-index
فسيتم عرض،إذا تداخل عنصران متوضعان مع بعضهما البعض دون تحديد z-index العنصر المحدد الأخير في كود HTML في الأعلى.
<html>
<head>
<style>
.container {
position: relative;
}
.black-box {
position: relative;
border: 2px solid black;
height: 100px;
margin: 30px;
CSS 62
}
.gray-box {
position: absolute;
background: lightgray;
height: 60px;
width: 70%;
left: 50px;
top: 50px;
}
.green-box {
position: absolute;
background: lightgreen;
width: 35%;
left: 270px;
top: -15px;
height: 100px;
}
</style>
</head>
<body>
<div class="container">
<div class="black-box">Black box</div>
<div class="gray-box">Gray box</div>
<div class="green-box">Green box</div>
</div>
</body>
</html>
CSS Overflow
تحدد الخاصيةoverflow ما إذا كان سيتم قص المحتوى أو إضافة أشرطة التمرير عندما يكون محتوى العنصر كبيًر ا جًد ا بحيث لا يمكن احتواؤه
في المنطقة المحددة.
visible
تقصير.
لم يتم قص الفائض.
hidden
scroll
CSS 63
يتم قص الفائض وإضافة شريط تمرير لرؤية بقية المحتوى
auto scroll
مشابه لـ
overflow: visible
بشكل افتراضي ،التجاوز هو visible :مما يعني أنه لا يتم قصه ويتم عرضه خارج مربع العنصر ،
{ div
;width: 200px
;height: 65px
;background-color: coral
;overflow: visible
}
overflow: hidden
باستخدام القيمة hidden :يتم قص الفائض ،ويتم إخفاء باقي المحتوى ،
{ div
;overflow: hidden
}
overflow: scroll
عند تعيين القيمة على scroll يتم قص التجاوز وإضافة شريط تمرير للتمرير داخل المربع .لاحظ أن هذا سيضيف شريط تمرير أفقًي ا وعمودًي ا ،
(:حتى لو لم تكن بحاجة إليه)
{ div
;overflow: scroll
}
overflow: auto
القيمة auto مشابهة لـ scroll :ولكنها تضيف أشرطة التمرير فقط عند الضرورة ،
{ div
;overflow: auto
}
CSS 64
overflow-y .يحدد ما يجب فعله بالحواف العلوية/السفلية للمحتوى
{ div
overflow-x: hidden; /* Hide horizontal scrollbar */
overflow-y: scroll; /* Add vertical scrollbar */
}
يتم استخدام الخاصية float .لتحديد موضع المحتوى وتنسيقه ،على سبيل المثال ،دع الصورة تطفو يساًر ا إلى النص الموجود في الحاوية
left
right
none
inherit
،في أبسط استخدام لها float .يمكن استخدام الخاصية لالتفاف النص حول الصور
CSS 65
{ img
;float: right
}
{ img
;float: left
}
Example - No float
في المثال التالي ،سيتم عرض الصورة في مكان تواجدها في النص (float: none;):
{ img
;float: none
}
CSS 66
{ div
;float: left
;padding: 15px
}
{ .div1
;background: red
}
{ .div2
;background: yellow
}
{ .div3
;background: green
}
تحدد الخاصية clear .ما يجب أن يحدث للعنصر المجاور للعنصر العائم
يمكن أن تحتوي الخاصية clear :على إحدى القيم التالية
none
left
right
both
inherit
عند مسح العوامات ،يجب عليك مطابقة الوضوح مع العوامات :إذا تم تعويم عنصر إلى اليسار ،فيجب عليك مسحه إلى اليسار .سيستمر العنصر
.العائم في الطفو ،لكن العنصر الذي تم مسحه سيظهر أسفله على صفحة الويب
يقوم هذا المثال بمسح التعويم إلى اليسار .هذا يعني أنه تم دفع العنصر ><div2 أسفل العنصر ><div1 العائم الأيسر
{ div1
;float: left
}
{ div2
CSS 67
;clear: left
}
{ .clearfix
;overflow: auto
}
الواضح بشكل جيد طالما أنك قادر على التحكم في الهوامش والمساحة المتروكة (وإلا قد ترى أشرطة overflow: autoيعمل الإصالح
:الجديدة والحديثة أكثر أماًن ا ،ويتم استخدام الكود التالي لمعظم صفحات الويب Clearfixالتمرير) .ومع ذلك ،فإن استخدام أداة
{ .clearfix::after
;"" content:
;clear: both
;display: table
}
باستخدام float :الخاصية ،من السهل وضع مربعات المحتوى جنًب ا إلى جنب
CSS 68
* {
box-sizing: border-box;
}
.box {
float: left;
width: 33.33%; /* three boxes (use 25% for four, and 50% for two, etc) */
padding: 50px; /* if you want space between the images */
}
يمكن أيًض ا استخدام شبكة المربعات لعرض الصور جنًب ا إلى جنب:
.img-container {
float: left;
width: 33.33%; /* three containers (use 25% for four, and 50% for two, etc) */
padding: 5px; /* if you want space between the images */
}
.box {
height: 500px;
}
CSS 69
ومع ذلك ،هذه ليست مرنة للغاية .لا بأس إذا كان بإمكانك ضمان أن المربعات ستحتوي دائًم ا على نفس القدر من المحتوى بداخلها .ولكن
في كثير من الأحيان ،المحتوى ليس هو نفسه .إذا قمت بتجربة المثال أعاله على الهاتف المحمول ،فسوف ترى أنه سيتم عرض محتوى
مفيًد ا -حيث يمكنه تمديد المربعات تلقائًي ا لتصبح بطول المربع CSS3 Flexboxالمربع الثاني خارج الصندوق .هذا هو المكان الذي يكون فيه
:الأطول
box-sizing يحدد كيفية حساب عرض العنصر وارتفاعه :هل يجب أن يتضمنا حشوة وحدود أم لا
float يحدد ما إذا كان العنصر يجب أن يطفو إلى اليسار أو اليمين أو لا يطفو على الإطالق
overflow-x يحدد ما يجب فعله بالحواف اليسرى/اليمنى للمحتوى إذا تجاوز مساحة محتوى العنصر
overflow-y يحدد ما يجب فعله بالحواف العلوية/السفلية للمحتوى إذا تجاوز مساحة محتوى العنصر
فإن الاختالف الرئيسي هو أنه display: block ،مقارنًة بـ display: inline-block لا يضيف فاصل أسطر بعد العنصر ،بحيث يمكن للعنصر أن
.يجلس بجوار العناصر الأخرى
يوضح المثال التالي السلوك المختلف لـ و display: inline : display: inline-block display: block
{ span.a
display: inline; /* the default for span */
;width: 100px
;height: 100px
;padding: 5px
;border: 1px solid blue
;background-color: yellow
}
{ span.b
;display: inline-block
;width: 100px
;height: 100px
;padding: 5px
;border: 1px solid blue
;background-color: yellow
}
{ span.c
;display: block
;width: 100px
;height: 100px
;padding: 5px
;border: 1px solid blue
CSS 70
background-color: yellow;
}
.nav {
background-color: yellow;
list-style-type: none;
text-align: center;
padding: 0;
margin: 0;
}
.nav li {
display: inline-block;
font-size: 20px;
padding: 20px;
}
سيؤدي ضبط عرض العنصر إلى منعه من التمدد إلى حواف الحاوية الخاصة به.
وسيتم تقسيم المساحة المتبقية بالتساوي بين الهامشين،سيأخذ العنصر بعد ذلك العرض المحدد:
CSS 71
.center {
margin: auto;
width: 50%;
border: 3px solid green;
padding: 10px;
}
ليس للمحاذاة المركزية أي تأثير إذا:مالحظة width )%100 لم يتم تعيين الخاصية (أو تم ضبطها على.
.center {
text-align: center;
border: 3px solid green;
}
Center an Image
قم بتعيين الهامش الأيسر والأيمن،لتوسيط الصورة auto وجعلها في block عنصر:
img {
display: block;
margin-left: auto;
margin-right: auto;
width: 40%;
}
CSS 72
Left and Right Align - Using position
إحدى طرق محاذاة العناصر هي استخدام position: absolute; :
.right {
position: absolute;
right: 0px;
width: 300px;
border: 3px solid #73AD21;
padding: 10px;
}
.right {
float: right;
width: 300px;
border: 3px solid #73AD21;
padding: 10px;
}
ثم يمكننا إضافة اختراق Clearfix إلى العنصر المحتوي لإصالح هذه المشكلة:
.clearfix::after {
content: "";
clear: both;
display: table;
}
CSS 73
Center Vertically - Using padding
هناك العديد من الطرق لتوسيط عنصر عمودًي ا فيCSS. الحل البسيط هو استخدام العلوي والسفلي padding :
.center {
padding: 70px 0;
border: 3px solid green;
}
.center {
padding: 70px 0;
border: 3px solid green;
text-align: center;
}
.center {
line-height: 200px;
height: 200px;
border: 3px solid green;
text-align: center;
}
CSS 74
Center Vertically - Using position & transform
إذا padding لم line-height فالحل الآخر هو استخدام تحديد المواقع والخاصية،تكن هناك خيارات transform :
.center {
height: 200px;
position: relative;
border: 3px solid green;
}
.center p {
margin: 0;
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}
.center {
display: flex;
justify-content: center;
align-items: center;
height: 200px;
border: 3px solid green;
}
CSS 75
CSS Combinators
CSS Combinators
.على أكثر من محدد بسيط .بين المحددات البسيطة ،يمكننا تضمين أداة الدمج CSSيمكن أن يحتوي محدد
Descendant Selector
.يطابق المحدد السليل جميع العناصر المنحدرة من عنصر محدد
المثال التالي يحدد جميع عناصر ><p داخل عناصر ><div :
{ div p
;background-color: yellow
}
يحدد المثال التالي جميع عناصر ><p التي هي عناصر فرعية لعنصر ><div :
يحدد المثال التالي العنصر ><p الأول الذي يتم وضعه مباشرة بعد عناصر ><div :
{ div + p
;background-color: yellow
}
CSS 76
{ div ~ p
;background-color: yellow
}
CSS Pseudo-classes
?What are Pseudo-classes
.يتم استخدام فئة زائفة لتحديد حالة خاصة للعنصر
قم بتصميم الروابط التي تمت زيارتها وغير التي تمت زيارتها بشكل مختلف
Syntax
:بناء جملة الفئات الزائفة
{ selector:pseudo-class
;property: value
}
Anchor Pseudo-classes
:يمكن عرض الروابط بطرق مختلفة
CSS 77
a.highlight:hover {
color: #ff0000;
}
Hover on <div>
مثال على استخدام :hover الفئة الزائفة على عنصر <div> :
div:hover {
background-color: blue;
}
p {
display: none;
background-color: yellow;
padding: 20px;
}
div:hover p {
display: block;
}
p:first-child {
color: blue;
}
p i:first-child {
color: blue;
}
CSS 78
:التي تمثل الابن الأول لعنصر آخر > <pالموجودة في العناصر > <iفي المثال التالي ،يطابق المحدد جميع العناصر
{ p:first-child i
;color: blue
}
،في المثال أدناه :lang يحدد عالمات الاقتباس للعناصر ><q ذات "lang="no :
><html
><head
><style
{ )q:lang(no
;"~" "~" quotes:
}
></style
></head
><body
></body
></html
CSS Pseudo-elements
?What are Pseudo-Elements
يتم استخدام عنصر CSS .الزائف لتصميم أجزاء محددة من العنصر
Syntax
:بناء جملة العناصر الزائفة
{ selector::pseudo-element
;property: value
}
يقوم المثال التالي بتنسيق السطر الأول من النص في جميع عناصر ><p :
CSS 79
p::first-line {
color: #ff0000;
font-variant: small-caps;
}
لا يمكن تطبيق العنصر:ملحوظة ::first-line الزائف إلا على عناصر مستوى الكتلة.
تنطبق الخصائص التالية على ::first-line العنصر الزائف:
font properties
color properties
background properties
word-spacing
letter-spacing
text-decoration
vertical-align
text-transform
line-height
clear
يقوم المثال التالي بتنسيق الحرف الأول من النص في جميع عناصر <p> :
p::first-letter {
color: #ff0000;
font-size: xx-large;
}
لا يمكن تطبيق العنصر:ملحوظة ::first-letter الزائف إلا على عناصر مستوى الكتلة.
الحرف الأول:: تنطبق الخصائص التالية على العنصر الزائف:
font properties
color properties
background properties
word-spacing
letter-spacing
text-decoration
vertical-align
text-transform
line-height
clear
CSS 80
Pseudo-elements and HTML Classes
HTML:يمكن دمج العناصر الزائفة مع فئات
{ p.intro::first-letter
;color: #ff0000
;font-size: 200%
}
Multiple Pseudo-elements
.يمكن أيًض ا دمج العديد من العناصر الزائفة
كبير .سيكون باقي السطر الأول باللون الأزرق وبالأحرف xxفي المثال التالي ،سيكون الحرف الأول من الفقرة باللون الأحمر ،بحجم خط
:الصغيرة .ستكون بقية الفقرة بحجم الخط ولونه الافتراضيين
{ p::first-letter
;color: #ff0000
;font-size: xx-large
}
{ p::first-line
;color: #0000ff
;font-variant: small-caps
}
يقوم المثال التالي بإدراج صورة قبل محتوى كل عنصر ><h1 :
{ h1::before
;)content: url(smiley.gif
}
يقوم المثال التالي بإدراج صورة بعد محتوى كل عنصر ><h1 :
{ h1::after
;)content: url(smiley.gif
}
CSS 81
{ ::marker
;color: red
;font-size: 23px
}
:المثال التالي يجعل النص المحدد باللون الأحمر على خلفية صفراء
{ ::selection
;color: red
;background: yellow
}
Transparent Image
يمكن أن تأخذ الخاصية opacity :قيمة من 0.0إلى .1.0كلما انخفضت القيمة ،زادت الشفافية
{ img
;opacity: 0.5
}
CSS 82
{ img
;opacity: 0.5
}
{ img:hover
;opacity: 1.0
}
الأولى تشبه الكود الموجود في المثال .1بالإضافة إلى ذلك ،أضفنا ما يجب أن يحدث عندما يقوم المستخدم بالتمرير فوق إحدى CSSكتلة
opacity:1; .لهذا هو . CSSالصور .في هذه الحالة ،نريد ألا تكون الصورة شفافة عندما يقوم المستخدم بالتمرير فوقها
.عندما يتحرك مؤشر الماوس بعيًد ا عن الصورة ،ستصبح الصورة شفافة مرة أخرى
{ img:hover
;opacity: 0.5
}
Transparent Box
عند استخدام opacity الخاصية لإضافة شفافية إلى خلفية عنصر ما ،فإن جميع عناصره الفرعية ترث نفس الشفافية .قد يؤدي ذلك إلى
:صعوبة قراءة النص الموجود داخل عنصر شفاف بالكامل
{ div
;opacity: 0.3
}
CSS 83
لقد تعلمت من فصل ألوانCSS ، أنه يمكنك استخدامRGB بالإضافة إلى. كقيمة لونRGB، يمكنك استخدام قيمة لونRGB مع قناة ألفا
(RGBA) - التي تحدد عتامة اللون.
يتم تحديد قيمة لونRGBA باستخدام: rgba(red, green, blue, alpha ). (معتم1.0 (شفاف بالكامل) و0.0 معلمة ألفا هي رقم يقع بين
) بالكامل.
div {
background: rgba(76, 175, 80, 0.3) /* Green background with 30% opacity */
}
<html>
<head>
<style>
div.background {
background: url(klematis.jpg) repeat;
border: 2px solid black;
}
div.transbox {
margin: 30px;
background-color: #ffffff;
border: 1px solid black;
opacity: 0.6;
}
div.transbox p {
margin: 5%;
font-weight: bold;
color: #000000;
}
</style>
</head>
<body>
CSS 84
<div class="background">
<div class="transbox">
<p>This is some text that is placed in the transparent box.</p>
</div>
</div>
</body>
</html>
Example explained
نقوم بإنشاء عنصر، أولًا <div> (class="background") مع صورة خلفية وحدود.
ثم نقوم بإنشاء <div> (class = "transbox" ) آخر داخل <div> الأول.
يحتوي <div class="transbox"> يكون- على لون خلفية وحدود div شفاًف ا.
Navigation Bars
يعد التنقل سهل الاستخدام أمًر ا مهًم ا لأي موقع ويب.
باستخدام CSS ، يمكنك تحويل قوائم HTML المملة إلى أشرطة تنقل جيدة المظهر.
لذا فإن استخدام العنصرين،شريط التنقل هو في الأساس قائمة من الروابط <ul> و <li> أمر منطقي تماًم ا:
<ul>
<li><a href="default.asp">Home</a></li>
<li><a href="news.asp">News</a></li>
<li><a href="contact.asp">Contact</a></li>
<li><a href="about.asp">About</a></li>
</ul>
CSS 85
:لنقم الآن بإزالة التعداد النقطي والهوامش والحشوة من القائمة
{ ul
;list-style-type: none
;margin: 0
;padding: 0
}
:وأوضح المثال
;list-style-type: none
.يزيل الرصاص
لا يحتاج شريط التنقل إلى عالمات القائمة
وإزالة
الكود الموجود في المثال أعاله هو الكود القياسي المستخدم في أشرطة التنقل الرأسية والأفقية ،والذي ستتعلم المزيد عنه في الفصول
.التالية
:داخل القائمة ،بالإضافة إلى التعليمات البرمجية من الصفحة السابقة > <aلإنشاء شريط تنقل رأسي ،يمكنك تصميم عناصر
{ li a
;display: block
;width: 60px
}
:وأوضح المثال
;display: block
عرض الروابط كعناصر كتلة يجعل منطقة الارتباط بأكملها قابلة للنقر (وليس النص فقط) ،ويسمح لنا بتحديد العرض (والحشوة،
والهامش ،والارتفاع ،وما إلى ذلك إذا كنت تريد ذلك)
;width: 60px
يمكنك أيًض ا ضبط عرض ><ul وإزالة عرض ، ><a حيث سيشغل العرض الكامل المتاح عند عرضه كعناصر كتلة .سيؤدي هذا إلى نفس النتيجة ،
:مثل مثالنا السابق
CSS 86
ul {
list-style-type: none;
margin: 0;
padding: 0;
width: 60px;
}
li a {
display: block;
}
ul {
list-style-type: none;
margin: 0;
padding: 0;
width: 200px;
background-color: #f1f1f1;
}
li a {
display: block;
color: #000;
padding: 8px 16px;
text-decoration: none;
}
CSS 87
.active {
background-color: #04AA6D;
color: white;
}
أضفborder < الخاصية إلىul> فأضف، إذا كنت تريد أيًض ا حدوًد ا داخل شريط التنقل. لإضافة حد حول شريط التنقلa border-bottom إلى
< جميع عناصرli> ، باستثناء العنصر الأخير:
ul {
border: 1px solid #555;
}
li {
text-align: center;
border-bottom: 1px solid #555;
}
li:last-child {
border-bottom: none;
}
CSS 88
ul {
list-style-type: none;
margin: 0;
padding: 0;
width: 25%;
background-color: #f1f1f1;
height: 100%; /* Full height */
position: fixed; /* Make it stick, even on scroll */
overflow: auto; /* Enable scrolling if the sidenav has too much content */
}
استخدام عناصر القائمة المضمنة أو العائمة. هناك طريقتان لإنشاء شريط تنقل أفقي.
li {
display: inline;
}
وأوضح المثال:
display: inline;
لعرضها في سطر واح، نقوم بإزالة فواصل الأسطر قبل وبعد كل عنصر في القائمة،هنا
CSS 89
Floating List Items
هناك طريقة أخرى لإنشاء شريط تنقل أفقي وهي تعويم العناصر ><li :وتحديد تخطيط لروابط التنقل
{ li
;float: left
}
{ a
;display: block
;padding: 8px
;background-color: #dddddd
}
:وأوضح المثال
;float: left
;display: block
يسمح لنا بتحديد المساحة المتروكة (والارتفاع والعرض والهوامش وما إلى ذلك إذا أردت ذلك)
;padding: 8px
لجعلها تبدو جيدة > <aحدد بعض المساحة المتروكة بين كل عنصر
;background-color: #dddddd
نصيحة :أضف لون الخلفية إلى ><ul بدلًا من كل عنصر ><a :إذا كنت تريد لون خلفية كامل العرض
{ ul
;background-color: #dddddd
}
{ ul
;list-style-type: none
;margin: 0
;padding: 0
;overflow: hidden
;background-color: #333
}
{ li
;float: left
}
{ li a
CSS 90
display: block;
color: white;
text-align: center;
padding: 14px 16px;
text-decoration: none;
}
.active {
background-color: #04AA6D;
}
Right-Align Links
( محاذاة الروابط إلى اليمين عن طريق تحريك عناصر القائمة إلى اليمين float:right; ):
<ul>
<li><a href="#home">Home</a></li>
<li><a href="#news">News</a></li>
<li><a href="#contact">Contact</a></li>
<li style="float:right"><a class="active" href="#about">About</a></li>
</ul>
Border Dividers
أضف border-right < الخاصية إلىli> لإنشاء فواصل الارتباط:
CSS 91
/* Add a gray right border to all list items, except the last item (last-child) */
li {
border-right: 1px solid #bbb;
}
li:last-child {
border-right: none;
}
ul {
border: 1px solid #e7e7e7;
background-color: #f3f3f3;
}
li a {
color: #666;
}
CSS 92
Sticky Navbar
أضف ;position: sticky .لإنشاء شريط تنقل ثابت > <ulإلى
يقوم العنصر الثابت بالتبديل بين النسبي والثابت ،اعتماًد ا على موضع التمرير .يتم وضعه بشكل نسبي حتى يتم استيفاء موضع إزاحة معين
.في إطار العرض -ثم "يثبت" في مكانه (مثل الموضع :ثابت)
{ ul
position: -webkit-sticky; /* Safari */
;position: sticky
;top: 0
}
Dropdown Navbar
CSS .أنشئ قائمة منسدلة قابلة للتمرير باستخدام
Basic Dropdown
.قم بإنشاء مربع منسدل يظهر عندما يقوم المستخدم بتحريك الماوس فوق عنصر ما
><style
{ .dropdown
;position: relative
;display: inline-block
}
{ .dropdown-content
;display: none
;position: absolute
CSS 93
;background-color: #f9f9f9
;min-width: 160px
;)box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2
;padding: 12px 16px
;z-index: 1
}
{ .dropdown:hover .dropdown-content
;display: block
}
></style
>"<div class="dropdown
><span>Mouse over me</span
>"<div class="dropdown-content
><p>Hello World!</p
></div
></div
Example Explained
HTML <button>.أو عنصر <span>،استخدم أي عنصر لفتح محتوى القائمة المنسدلة ،على سبيل المثال عنصر )
مثل( استخدم عنصر الحاوية ><div .لإنشاء محتوى القائمة المنسدلة وإضافة ما تريده بداخله )
لف عنصر ><div حول العناصر لوضع محتوى القائمة المنسدلة بشكل صحيح باستخدام CSS .
CSS ،يستخدم الفصل ) .dropdown position:relative وهو أمر ضروري عندما نريد وضع محتوى القائمة المنسدلة مباشرة أسفل زر القائمة
باستخدام( المنسدلة position:absolute ).
يحتفظ الفصل بمحتوى القائمة المنسدلة الفعلي .يكون مخفًي ا بشكل افتراضي ،وسيتم عرضه عند التمرير (انظر
.dropdown-content
تم ضبطه على 160بكسل .لا تتردد في تغيير هذا .نصيحة :إذا كنت تريد أن يكون عرض محتوى القائمة المنسدلة min-widthأدناه) .لاحظ أنه
).ولتمكين التمرير على الشاشات الصغيرة width 100% ( overflow:autoبنفس عرض زر القائمة المنسدلة ،فاضبط على
بدلًا من استخدام الحدود ،استخدمنا box-shadow ".لجعل القائمة المنسدلة تبدو وكأنها "بطاقة CSSخاصية
يتم استخدام المحدد :hover .لإظهار القائمة المنسدلة عندما يقوم المستخدم بتحريك الماوس فوق زر القائمة المنسدلة
Dropdown Menu
:قم بإنشاء قائمة منسدلة تسمح للمستخدم باختيار خيار من القائمة
:هذا المثال مشابه للمثال السابق ،باستثناء أننا نضيف روابط داخل مربع القائمة المنسدلة ونصممها لتناسب زر القائمة المنسدلة المصمم
><style
/* Style The Dropdown Button */
{ .dropbtn
;background-color: #4CAF50
;color: white
;padding: 16px
;font-size: 16px
;border: none
;cursor: pointer
}
/* The container <div> - needed to position the dropdown content */
{ .dropdown
CSS 94
position: relative;
display: inline-block;
}
/* Change the background color of the dropdown button when the dropdown
content is shown */
.dropdown:hover .dropbtn {
background-color: #3e8e41;
}
</style>
<div class="dropdown">
<button class="dropbtn">Dropdown</button>
<div class="dropdown-content">
<a href="#">Link 1</a>
<a href="#">Link 2</a>
<a href="#">Link 3</a>
</div>
</div>
.dropdown-content {
right: 0;
}
CSS 95
CSS Image Gallery
Image Gallery
تم إنشاء معرض الصور التالي باستخدام CSS :
<html>
<head>
<style>
div.gallery {
margin: 5px;
border: 1px solid #ccc;
float: left;
width: 180px;
}
div.gallery:hover {
border: 1px solid #777;
}
div.gallery img {
width: 100%;
height: auto;
}
div.desc {
padding: 15px;
text-align: center;
}
</style>
</head>
<body>
<div class="gallery">
<a target="_blank" href="img_5terre.jpg">
<img src="img_5terre.jpg" alt="Cinque Terre" width="600" height="400">
</a>
<div class="desc">Add a description of the image here</div>
</div>
<div class="gallery">
<a target="_blank" href="img_forest.jpg">
<img src="img_forest.jpg" alt="Forest" width="600" height="400">
</a>
<div class="desc">Add a description of the image here</div>
</div>
<div class="gallery">
<a target="_blank" href="img_lights.jpg">
<img src="img_lights.jpg" alt="Northern Lights" width="600" height="400">
</a>
<div class="desc">Add a description of the image here</div>
</div>
<div class="gallery">
<a target="_blank" href="img_mountains.jpg">
CSS 96
>"<img src="img_mountains.jpg" alt="Mountains" width="600" height="400
></a
><div class="desc">Add a description of the image here</div
></div
></body
></html
Image Sprites
.الصورة المتحركة عبارة عن مجموعة من الصور الموضوعة في صورة واحدة
.يمكن أن تستغرق صفحة الويب التي تحتوي على العديد من الصور وقًت ا طويًال للتحميل وتؤدي إلى إنشاء طلبات خادم متعددة
.سيؤدي استخدام الصور المتحركة إلى تقليل عدد طلبات الخادم وتوفير النطاق الترددي
باستخدام CSS .يمكننا إظهار الجزء الذي نحتاجه فقط من الصورة ،
في المثال التالي ،يحدد CSS :سيتم عرضه " " img_navsprites.gifأي جزء من الصورة
{ #home
;width: 46px
;height: 44px
;background: url(img_navsprites.gif) 0 0
}
:وأوضح المثال
يحدد فقط صورة شفافة صغيرة لأن السمة src .لا يمكن أن تكون فارغة
ستكون الصورة المعروضة هي صورة الخلفية التي نحددها في CSS
.هذه هي الطريقة الأسهل لاستخدام الصور المتحركة ،والآن نريد توسيعها باستخدام الروابط وتأثيرات التمرير
CSS 97
#navlist {
position: relative;
}
#navlist li {
margin: 0;
padding: 0;
list-style: none;
position: absolute;
top: 0;
}
#home {
left: 0px;
width: 46px;
background: url('img_navsprites.gif') 0 0;
}
#prev {
left: 63px;
width: 43px;
background: url('img_navsprites.gif') -47px 0;
}
#next {
left: 129px;
width: 43px;
background: url('img_navsprites.gif') -91px 0;
}
وأوضح المثال:
#navlist {position:relative;}
تم ضبط الموضع على نسبة للسماح بتحديد الموضع المطلق بداخله
#navlist li {margin:0;padding:0;list-style:none;position:absolute;top:0;}
- وتم تحديد موضع جميع عناصر القائمة بشكل مطلق، وتمت إزالة نمط القائمة،0 تم تعيين الهامش والحشو على
#home {left:0px;width:46px;}
بكسل46 ويبلغ عرض الصورة،تم وضعه على طول الطريق إلى اليسار
#prev {left:63px;width:43px;}
بكسل43 والعرض،) بعض المساحة الإضافية بين العناصر+ بكسل46 عرض المنزل#( بكسل63 تم وضعه على اليمين بمقدار
) بكسل1 فاصل خط+ بكسل46 عرض المنزل#( بكسل على اليمين47 تحديد صورة الخلفية بمقدار
CSS 98
};#next {left:129px;width:43px
والعرض )، 43بكسل +مساحة إضافية #prev 43هي 63بكسل +عرض #prevبداية( تم وضعه على اليمين بمقدار 129بكسل
بكسل
تحديد صورة الخلفية 91بكسل إلى اليمين (#عرض المنزل 46بكسل 1 +بكسل خط مقسم +عرض #السابق 43بكسل 1 +بكسل
خط مقسم)
:على ثالث صور تنقل وثالث صور لاستخدامها في تأثيرات التمرير )" (" img_navsprites_hover.gifتحتوي صورتنا الجديدة
نظًر ا لأن هذه صورة واحدة وليست ستة ملفات منفصلة ،فلن يكون هناك تأخير في التحميل عندما يقوم المستخدم بتحريك الماوس فوق
.الصورة
{ #home a:hover
;background: url('img_navsprites_hover.gif') 0 -45px
}
{ #prev a:hover
;background: url('img_navsprites_hover.gif') -47px -45px
}
{ #next a:hover
;background: url('img_navsprites_hover.gif') -91px -45px
}
:وأوضح المثال
بالنسبة لجميع الصور الثالث ،نحدد نفس موضع الخلفية ،فقط 45بكسل لألسفل
{ ]a[target
;background-color: yellow
}
CSS 99
target="_blank":ذات السمة > <aيحدد المثال التالي كافة عناصر
{ ]"a[target="_blank
;background-color: yellow
}
{ ]"[title~="flower
;border: 5px solid yellow
}
{ ]"[class|="top
;background: yellow
}
"top":يحدد المثال التالي جميع العناصر ذات قيمة سمة الفئة التي تبدأ بـ
!مالحظة :لا يجب أن تكون القيمة كلمة كاملة
{ ]"[class^="top
;background: yellow
}
":يحدد المثال التالي جميع العناصر ذات قيمة سمة الفئة التي تنتهي بـ "اختبار
{ ]"[class$="test
;background: yellow
}
CSS 100
CSS [attribute*="value"] Selector
يتم استخدام المحدد ]"[attribute*="value .لتحديد العناصر التي تحتوي قيمة سمتها على قيمة محددة
"te":يحدد المثال التالي جميع العناصر ذات قيمة سمة الفئة التي تحتوي على
!مالحظة :لا يجب أن تكون القيمة كلمة كاملة
{ ]"[class*="te
;background: yellow
}
Styling Forms
:يمكن أن تكون محددات السمات مفيدة لتصميم النماذج بدون فئة أو معرف
{ ]"input[type="text
;width: 150px
;display: block
;margin-bottom: 10px
;background-color: yellow
}
{ ]"input[type="button
;width: 120px
;margin-left: 35px
;display: block
}
CSS Forms
يمكن تحسين مظهر نموذج HTML بشكل كبير باستخدام CSS :
CSS 101
{ input
;width: 100%
}
:إذا كنت تريد فقط تصميم نوع إدخال محدد ،فيمكنك استخدام محددات السمات <input>.ينطبق المثال أعاله على كافة عناصر
]input[type=text
]input[type=password
]input[type=number
..إلخ
Padded Inputs
استخدم padding .الخاصية لإضافة مساحة داخل حقل النص
نصيحة :عندما يكون لديك العديد من المدخالت تلو الأخرى ،قد ترغب أيًض ا في إضافة بعضها margin :لإضافة مساحة أكبر خارجها
{ ]input[type=text
;width: 100%
;padding: 12px 20px
;margin: 8px 0
;box-sizing: border-box
}
Bordered Inputs
استخدم border الخاصية لتغيير حجم الحدود ولونها ،واستخدم الخاصية border-radius :لإضافة زوايا مستديرة
CSS 102
{ ]input[type=text
;border: 2px solid red
;border-radius: 4px
}
{ ]input[type=text
;border: none
;border-bottom: 2px solid red
}
Colored Inputs
استخدم background-color الخاصية لإضافة لون خلفية إلى الإدخال ،واستخدم الخاصية color :لتغيير لون النص
{ ]input[type=text
;background-color: #3CBC8D
;color: white
}
Focused Inputs
افتراضًي ا ،ستضيف بعض المتصفحات مخطًط ا تفصيلًي ا أزرق حول الإدخال عندما يتم التركيز عليه (النقر عليه) .يمكنك إزالة هذا السلوك عن
.إلى الإدخال ; outline: noneطريق الإضافة
استخدم :focus :المحدد للقيام بشيء ما بحقل الإدخال عندما يتم التركيز عليه
CSS 103
فاستخدم،إذا كنت تريد رمًز ا داخل الإدخال background-image الخاصية وقم بوضعها مع background-position لاحظ أيًض ا أننا أضفنا.الخاصية
حشوة يسرى كبيرة لحجز مساحة الأيقونة:
input[type=text] {
background-color: white;
background-image: url('searchicon.png');
background-position: 10px 10px;
background-repeat: no-repeat;
padding-left: 40px;
}
input[type=text] {
transition: width 0.4s ease-in-out;
}
input[type=text]:focus {
width: 100%;
}
Styling Textareas
استخدم:نصيحة resize )الخاصية لمنع تغيير حجم مناطق النص (قم بتعطيل "الملتقط" في الزاوية اليمنى السفلية:
textarea {
width: 100%;
height: 150px;
padding: 12px 20px;
CSS 104
box-sizing: border-box;
border: 2px solid #ccc;
border-radius: 4px;
background-color: #f8f8f8;
resize: none;
}
select {
width: 100%;
padding: 16px 20px;
border: none;
border-radius: 4px;
background-color: #f1f1f1;
}
CSS Counters
CSS 105
تتيح لك ).لتتبع عدد مرات استخدامها( CSSوالتي يمكن زيادة قيمها بواسطة قواعد CSSهي "متغيرات" يحتفظ بها CSSعدادات
.العدادات ضبط مظهر المحتوى بناًء على موضعه في المستند
counter-reset
counter-increment
content
)(counter() counters
أو
الوظيفة -تضيف قيمة العداد إلى عنصر ما
{ body
;counter-reset: section
}
{ h2::before
;counter-increment: section
;" content: "Section " counter(section) ":
}
Nesting Counters
سيتم حساب عداد "القسم" لكل عنصر ).القسم الفرعي( > <h1يقوم المثال التالي بإنشاء عداد واحد للصفحة (القسم) وعداد واحد لكل عنصر
مع "< قيمة عداد القسم > <.> ".قيمة > <h2مع "القسم < قيمة عداد القسم > ،".وسيتم حساب عداد "القسم الفرعي" لكل عنصر ><h1
>":عداد القسم الفرعي
{ body
;counter-reset: section
}
{ h1
CSS 106
;counter-reset: subsection
}
{ h1::before
;counter-increment: section
;" content: "Section " counter(section) ".
}
{ h2::before
;counter-increment: subsection
;" " )content: counter(section) "." counter(subsection
}
يمكن أن يكون العداد مفيًد ا أيًض ا في إنشاء قوائم محددة لأنه يتم إنشاء مثيل جديد للعداد تلقائًي ا في العناصر الفرعية .نستخدم
:الدالة لإدراج سلسلة بين مستويات مختلفة من العدادات المتداخلة )( countersهنا
{ ol
;counter-reset: section
;list-style-type: none
}
{ li::before
;counter-increment: section
;" " )"content: counters(section,".
}
هناك الكثير من تصميمات التخطيط المختلفة لالختيار من بينها .ومع ذلك ،فإن البنية المذكورة أعاله هي واحدة من أكثر الهياكل شيوًع ا،
.وسوف نلقي نظرة فاحصة عليها في هذا البرنامج التعليمي
Header
عادًة ما يوجد الرأس في الجزء العلوي من موقع الويب (أو أسفل قائمة التنقل العلوية مباشرة) .غالًب ا ما يحتوي على شعار أو اسم موقع
:الويب
{ .header
;background-color: #F1F1F1
;text-align: center
;padding: 20px
}
CSS 107
Navigation Bar
:يحتوي شريط التنقل على قائمة من الروابط لمساعدة الزائرين على التنقل عبر موقع الويب الخاص بك
Content
:غالًب ا ما يعتمد التخطيط في هذا القسم على المستخدمين المستهدفين .التخطيط الأكثر شيوًع ا هو واحد (أو الجمع بينهما) مما يلي
عمود واحد
عمودان
)يستخدمان غالًب ا لألجهزة اللوحية وأجهزة الكمبيوتر المحمولة(
CSS 108
وتغييره إلى تخطيط عمود واحد على الشاشات الأصغر، أعمدة3 سنقوم بإنشاء تخطيط مكون من:
Unequal Columns
المحتوى الرئيسي هو الجزء الأكبر والأكثر أهمية في موقعك.
غالًب ا ما يتم استخدام المحتوى الجانبي (إن. بحيث يتم حجز معظم المساحة للمحتوى الرئيسي، ومن الشائع أن يكون عرض الأعمدة غير متساٍو
تذكر فقط أنه يجب أن يصل، قم بتغيير العرض كما تريد.وجد) كوسيلة تنقل بديلة أو لتحديد المعلومات ذات الصلة بالمحتوى الرئيسي
100 إجمالي العرض إلى%:
.column {
float: left;
}
/* Middle column */
.column.middle {
width: 50%;
}
CSS 109
/* Responsive layout - makes the three columns stack
on top of each other instead of next to each other */
@media screen and (max-width: 600px) {
.column.side, .column.middle {
width: 100%;
}
}
Footer
غالًب ا ما يحتوي على معلومات مثل حقوق الطبع والنشر ومعلومات الاتصال.يتم وضع التذييل في أسفل صفحتك:
.footer {
background-color: #F1F1F1;
text-align: center;
padding: 10px;
}
CSS Units
CSS Units
CSS 110
لدىCSS عدة وحدات مختلفة للتعبير عن الطول.
تأخذ العديد من خصائصCSS مثل،"قيم "الطول width ، margin و padding ،و font-size ، وما إلى ذلك.
h1 {
font-size: 60px;
}
p {
font-size: 25px;
line-height: 50px;
}
يمكن حذف الوحدة، 0 إذا كانت القيمة هي، ومع ذلك. لا يمكن أن تظهر مسافة بيضاء بين الرقم والوحدة:ملحوظة.
بالنسبة لبعض خصائصCSS، ُي سمح بالأطوال السالبة.
Absolute Lengths
وحدات الطول المطلق ثابتة وسيظهر الطول المعبر عنه في أي منها بهذا الحجم بالضبط.
يمكن استخدامها إذا كانت وسيلة، ومع ذلك. لأن أحجام الشاشات تختلف كثيًر ا،لا ُي نصح باستخدام وحدات الطول المطلق على الشاشة
مثل تخطيط الطباعة،الإخراج معروفة.
Unit Description
cm centimeters
mm millimeters
Relative Lengths
Unit Description
Relative to the font-size of the element (2em means 2 times the size of the
em
current font)
CSS 111
CSS The !important Rule
?What is !important
ُت ستخدم القاعدة !important .لإضافة أهمية أكبر للخاصية/القيمة أكثر من المعتاد CSSفي
في الواقع ،إذا استخدمت القاعدة !important !فإنها ستتجاوز جميع قواعد التصميم السابقة لتلك الخاصية المحددة على هذا العنصر ،
:دعونا ننظر على سبيل المثال
{ #myid
;background-color: blue
}
{ .myclass
;background-color: gray
}
{ p
;background-color: red !important
}
وأوضح المثال
في المثال أعاله .ستحصل جميع الفقرات الثالث على لون خلفية أحمر ،على الرغم من أن محدد المعرف ومحدد الفئة يتمتعان بخصوصية
.أعلى !important وتتجاوز القاعدة الخاصية background-color .في كلتا الحالتين
{ #myid
;background-color: blue !important
}
{ .myclass
;background-color: gray !important
}
{ p
;background-color: red !important
}
نصيحة :من الجيد أن تعرف عن !important ومع ذلك ،لا تستخدمه إلا إذا كنت مضطًر ا لذلك CSS.القاعدة .قد تراه في بعض أكواد مصدر
.تماًم ا
وهي :افترض أنك تريد مظهًر ا خاًص ا لجميع الأزرار الموجودة على الصفحة .هنا ،تم تصميم الأزرار !importantهناك طريقة أخرى لالستخدام
:بلون خلفية رمادية ونص أبيض وبعض الحشو والحدود
CSS 112
.button {
background-color: #8c8c8c;
color: white;
padding: 5px;
border: 1px solid black;
}
هنا مثال على ذلك. وتتعارض خصائصه،يمكن أن يتغير مظهر الزر أحياًن ا إذا وضعناه داخل عنصر آخر ذي خصوصية أعلى:
.button {
background-color: #8c8c8c;
color: white;
padding: 5px;
border: 1px solid black;
}
#myDiv a {
color: red;
background-color: yellow;
}
" يمكننا إضافة القاعدة، بغض النظر عن ذلك،لإجبار" جميع الأزرار على أن يكون لها نفس الشكل !important مثل هذا،إلى خصائص الزر:
.button {
background-color: #8c8c8c !important;
color: white !important;
padding: 5px !important;
border: 1px solid black !important;
}
#myDiv a {
color: red;
background-color: yellow;
}
CSS Syntax
CSS 113
استخدمcalc() < لحساب عرض عنصرdiv>:
#div1 {
position: absolute;
left: 50px;
width: calc(100% - 100px);
border: 1px solid black;
background-color: yellow;
padding: 5px;
}
CSS Syntax
#div1 {
background-color: yellow;
height: 100px;
width: max(50%, 300px);
}
CSS Syntax
#div1 {
background-color: yellow;
height: 100px;
CSS 114
width: min(50%, 300px);
}
CSS Advanced
#rcorners1 {
border-radius: 25px;
background: #73AD21;
padding: 20px;
width: 200px;
height: 150px;
}
#rcorners2 {
border-radius: 25px;
border: 2px solid #73AD21;
CSS 115
padding: 20px;
width: 200px;
height: 150px;
}
#rcorners3 {
border-radius: 25px;
background: url(paper.gif);
background-position: left top;
background-repeat: repeat;
padding: 20px;
width: 200px;
height: 150px;
}
الخاصية:نصيحة border-radius هي في الواقع خاصية مختصرة للخصائص border-top-left-radius و border-top-right-radius و border-bottom-
يمكن أن تحتوي الخاصية border-radius وهنا القواعد.على قيمة واحدة إلى أربع قيم:
15 : نصف قطر الحدود- أربع قيمpx 50px 30px 5px وتنطبق القيمة الثانية على،؛ (تنطبق القيمة الأولى على الزاوية العلوية اليسرى
) وتنطبق القيمة الرابعة على الزاوية السفلية اليسرى، وتنطبق القيمة الثالثة على الزاوية اليمنى السفلية،الزاوية العلوية اليمنى:
#rcorners1 {
border-radius: 15px 50px 30px 5px;
background: #73AD21;
padding: 20px;
width: 200px;
CSS 116
;height: 150px
}
؛ (تنطبق القيمة الأولى على الزاوية العلوية اليسرى ،وتنطبق القيمة الثانية على الزواياpx 50px 30pxثالث قيم -نصف قطر الحدود15 :
:العلوية اليمنى والسفلية اليسرى ،وتنطبق القيمة الثالثة على الزاوية اليمنى السفلية)
{ #rcorners2
;border-radius: 15px 50px 30px
;background: #73AD21
;padding: 20px
;width: 200px
;height: 150px
}
قيمتان -نصف قطر الحدود 15 :بكسل 50بكسل؛ (تنطبق القيمة الأولى على الزوايا العلوية اليسرى والسفلية اليمنى ،وتنطبق القيمة
:الثانية على الزوايا العلوية اليمنى والسفلية اليسرى)
{ #rcorners3
;border-radius: 15px 50px
;background: #73AD21
;padding: 20px
;width: 200px
;height: 150px
}
:قيمة واحدة -نصف قطر الحدود 15 :بكسل؛ (تنطبق القيمة على جميع الزوايا الأربع ،والتي يتم تقريبها بالتساوي
CSS 117
#rcorners4 {
border-radius: 15px;
background: #73AD21;
padding: 20px;
width: 200px;
height: 150px;
}
#rcorners1 {
border-radius: 50px / 15px;
background: #73AD21;
padding: 20px;
width: 200px;
height: 150px;
}
#rcorners2 {
border-radius: 15px / 50px;
background: #73AD21;
padding: 20px;
width: 200px;
height: 150px;
}
#rcorners3 {
border-radius: 50%;
background: #73AD21;
padding: 20px;
width: 200px;
height: 150px;
}
CSS 118
يأخذ العقارborder-image ويتم تكرار المقاطع، ثم يقوم بوضع الزوايا عند الزوايا. مثل لوحة تيك تاك تو،الصورة ويقسمها إلى تسعة أقسام
الوسطى أو تمديدها كما تحددها.
#borderimg {
border: 10px solid transparent;
padding: 15px;
border-image: url(border.png) 30 round;
}
#borderimg {
border: 10px solid transparent;
padding: 15px;
border-image: url(border.png) 30 stretch;
}
الخاصية: نصيحةborder-image هي في الواقع خاصية مختصرة للخصائص border-image-source و border-image-slice و border-image-
1 مثال:
#borderimg1 {
border: 10px solid transparent;
padding: 15px;
border-image: url(border.png) 50 round;
}
CSS 119
:مثال 2
{ #borderimg2
;border: 10px solid transparent
;padding: 15px
;border-image: url(border.png) 20% round
}
:مثال 3
{ #borderimg3
;border: 10px solid transparent
;padding: 15px
;border-image: url(border.png) 30% round
}
.يتم فصل صور الخلفية المختلفة بفواصل ،ويتم تكديس الصور فوق بعضها البعض ،حيث تكون الصورة الأولى هي الأقرب إلى العارض
يحتوي المثال التالي على صورتين للخلفية ،الصورة الأولى عبارة عن زهرة (محاذاة إلى الأسفل واليمين) والصورة الثانية عبارة عن خلفية
:ورقية (محاذاة إلى الزاوية العلوية اليسرى)
{ #example1
;)background-image: url(img_flwr.gif), url(paper.gif
;background-position: right bottom, left top
;background-repeat: no-repeat, repeat
}
يمكن تحديد صور خلفية متعددة باستخدام خصائص الخلفية الفردية (كما هو مذكور أعاله) أو background .خاصية الاختصار
CSS 120
يستخدم المثال التالي background :الخاصية المختصرة (نفس نتيجة المثال أعاله)
{ #example1
background: url(img_flwr.gif) right bottom no-repeat,
;url(paper.gif) left top repeat
}
.يمكن تحديد الحجم بالأطوال أو النسب المئوية أو باستخدام إحدى الكلمتين الرئيسيتين :يحتوي أو يغطي
:يقوم المثال التالي بتغيير حجم صورة الخلفية إلى حجم أصغر بكثير من الصورة الأصلية (باستخدام وحدات البكسل)
{ #div1
;)background: url(img_flower.jpg
;background-size: 100px 80px
;background-repeat: no-repeat
}
القيمتان الأخريان المحتملتان لـ background-size هما contain و cover .
الأساسية بتحجيم صورة الخلفية لتكون كبيرة قدر الإمكان (ولكن يجب أن يتناسب عرضها وارتفاعها داخل منطقة containتقوم الكلمة
المحتوى) .على هذا النحو ،اعتماًد ا على نسب صورة الخلفية ومنطقة تحديد موضع الخلفية ،قد تكون هناك بعض مناطق الخلفية التي لا
.تغطيها صورة الخلفية
الأساسية بتغيير حجم صورة الخلفية بحيث تتم تغطية منطقة المحتوى بالكامل بواسطة صورة الخلفية (يساوي عرضها coverتقوم الكلمة
.وارتفاعها مساحة المحتوى أو يتجاوزها) .على هذا النحو ،قد لا تكون بعض أجزاء صورة الخلفية مرئية في منطقة تحديد موضع الخلفية
{ #div1
;)background: url(img_flower.jpg
;background-size: contain
;background-repeat: no-repeat
}
{ #div2
;)background: url(img_flower.jpg
;background-size: cover
;background-repeat: no-repeat
}
:يحتوي المثال التالي على ثالث صور خلفية محددة ،مع قيمة مختلفة لحجم الخلفية لكل صورة
{ #example1
background: url(img_tree.gif) left top no-repeat,
;url(img_flwr.gif) right bottom no-repeat, url(paper.gif) left top repeat
;background-size: 50px, 130px, auto
}
CSS 121
Full Size Background Image
.نريد الآن الحصول على صورة خلفية على موقع ويب تغطي نافذة المتصفح بأكملها في جميع الأوقات
:المتطلبات هي كما يلي
ثم قم ).دائًم ا على الأقل بارتفاع نافذة المتصفح > <htmlيكون العنصر( > <htmlيوضح المثال التالي كيفية القيام بذلك؛ استخدم العنصر
:بتعيين خلفية ثابتة ومركزة عليها .ثم اضبط حجمه باستخدام خاصية حجم الخلفية
{ html
;background: url(img_man.jpg) no-repeat center fixed
;background-size: cover
}
Hero Image
لإنشاء صورة رئيسية (صورة كبيرة تحتوي على نص) ،ووضعها في المكان الذي > <divيمكنك أيًض ا استخدام خصائص خلفية مختلفة على
.تريده
{ .hero-image
;background: url(img_man.jpg) no-repeat center
;background-size: cover
;height: 500px
;position: relative
}
مربع الحشو ( -افتراضي) تبدأ صورة الخلفية من الزاوية اليسرى العليا لحافة الحشو
{ #example1
;border: 10px solid black
;padding: 35px
;)background: url(img_flwr.gif
;background-repeat: no-repeat
;background-origin: content-box
}
CSS 122
CSSتحدد خاصية background-clip .منطقة طالء الخلفية
مربع الحدود ( -افتراضي) يتم رسم الخلفية على الحافة الخارجية للحدود
{ #example1
;border: 10px dotted black
;padding: 35px
;background: yellow
;background-clip: content-box
}
{ body
;)"background-image: url("paper.gif
}
{ div
;background-color: transparent
}
:هو اللون الأزرق > <divباللون الأزرق ،لأن لون نص العنصر > <divفي هذا المثال ،سيكون لون حدود العنصر
{ div
;color: blue
;border: 10px solid currentcolor
}
:على قيمة اللون الحالية لعنصر النص > <divفي هذا المثال ،تم تعيين لون خلفية
{ body
;color: purple
}
CSS 123
{ div
;background-color: currentcolor
}
:ولون الظل إلى قيمة اللون الحالية لعنصر النص > <divفي هذا المثال ،تم تعيين لون حدود
{ body
;color: green
}
{ div
;box-shadow: 0px 0px 15px currentcolor
;border: 5px solid currentcolor
}
:من العنصر الأصلي > <spanفي هذا المثال ،سيتم توريث إعدادات حدود
{ div
;border: 2px solid red
}
{ span
;border: inherit
}
CSS Gradients
.عرض انتقالات سلسة بين لونين محددين أو أكثر CSSتتيح لك تدرجات
:ثالثة أنواع من التدرجات CSSيحدد
{ #grad
;)background-image: linear-gradient(red, yellow
CSS 124
}
:يوضح المثال التالي تدرًج ا خطًي ا يبدأ من اليسار .يبدأ باللون الأحمر ويتحول إلى اللون الأصفر
{ #grad
;)background-image: linear-gradient(to right, red , yellow
}
الاتجاه -قطري
.يمكنك عمل تدرج قطري عن طريق تحديد موضعي البداية الأفقي والرأسي
:يوضح المثال التالي تدرًج ا خطًي ا يبدأ من أعلى اليسار (وينتقل إلى أسفل اليمين) .يبدأ باللون الأحمر ويتحول إلى اللون الأصفر
{ #grad
;)background-image: linear-gradient(to bottom right, red, yellow
}
Using Angles
إذا كنت تريد المزيد من التحكم في اتجاه التدرج ،يمكنك تحديد زاوية ،بدلًا من الاتجاهات المحددة مسبًق ا (إلى الأسفل ،إلى الأعلى ،إلى
تعادل "إلى الأعلى" .قيمة 90درجة تعادل "إلى اليمين" .قيمة 180درجة degاليمين ،إلى اليسار ،إلى أسفل اليمين ،وما إلى ذلك) .قيمة 0
".تعادل "إلى الأسفل
{ #grad
;)background-image: linear-gradient(180deg, red, yellow
}
{ #grad
;)background-image: linear-gradient(red, yellow, green
}
:يوضح المثال التالي كيفية إنشاء تدرج خطي (من اليسار إلى اليمين) بلون قوس قزح وبعض النصوص
{ #grad
background-image: linear-gradient(to right,
;)red,orange,yellow,green,blue,indigo,violet
}
Using Transparency
.أيًض ا الشفافية ،والتي يمكن استخدامها لإنشاء تأثيرات التالشي CSSتدعم تدرجات
CSS 125
قيمة من 0إلى rgba() ،1لتحديد توقفات الألوان .يمكن أن تكون المعلمة الأخيرة في الدالة )( rgbaلإضافة الشفافية ،نستخدم الدالة
.وهي تحدد شفافية اللون :يشير 0إلى الشفافية الكاملة ،ويشير 1إلى اللون الكامل (بدون شفافية)
:يوضح المثال التالي تدرًج ا خطًي ا يبدأ من اليسار .يبدأ بالشفافية الكاملة ،وينتقل إلى اللون الأحمر الكامل
{ #grad
;))background-image: linear-gradient(to right, rgba(255,0,0,0), rgba(255,0,0,1
}
Repeating a linear-gradient
:لتكرار التدرجات الخطية )(ُ Repeating-linear-gradientت ستخدم الدالة
{ #grad
;)background-image: repeating-linear-gradient(red, yellow 10%, green 20%
}
{ div
;box-shadow: 10px 10px
}
{ div
;box-shadow: 10px 10px lightblue
CSS 126
}
div {
box-shadow: 10px 10px 5px lightblue;
}
div {
box-shadow: 10px 10px 5px 12px lightblue;
}
div {
box-shadow: 10px 10px 5px lightblue inset;
}
CSS 127
يمكن أن يكون للعنصر أيًض ا ظالل متعددة:
div {
box-shadow: 5px 5px blue, 10px 10px red, 15px 15px green;
}
Cards
يمكنك أيًض ا استخدام box-shadow الخاصية لإنشاء بطاقات تشبه الورق:
div.card {
width: 250px;
box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
text-align: center;
}
text-overflow
word-wrap
word-break
writing-mode
p.test1 {
white-space: nowrap;
width: 200px;
border: 1px solid #000000;
overflow: hidden;
CSS 128
;text-overflow: clip
}
{ p.test2
;white-space: nowrap
;width: 200px
;border: 1px solid #000000
;overflow: hidden
;text-overflow: ellipsis
}
:يوضح المثال التالي كيف يمكنك عرض المحتوى الزائد عند المرور فوق العنصر
{ div.test:hover
;overflow: visible
}
:بإجبار النص على الالتفاف -حتى لو كان ذلك يعني تقسيمه في منتصف الكلمة word-wrapتسمح لك الخاصية
{ p
;word-wrap: break-word
}
CSS 129
CSS Word Breaking
CSSتحدد خاصية word-break .قواعد كسر الأسطر
{ p.test1
;word-break: keep-all
}
{ p.test2
;word-break: break-all
}
{ p.test1
;writing-mode: horizontal-tb
}
{ span.test2
;writing-mode: vertical-rl
}
{ p.test2
;writing-mode: vertical-rl
}
عندما تجد/تشتري الخط الذي ترغب في استخدامه ،ما عليك سوى تضمين ملف الخط على خادم الويب الخاص بك ،وسيتم تنزيله تلقائًي ا
.للمستخدم عند الحاجة
يتم تعريف الخطوط "الخاصة بك" ضمن @font-face CSS.قاعدة
CSS 130
Using The Font You Want
في @font-face ،على سبيل المثال( القاعدة؛ قم أولًا بتعريف اسم للخط myFirstFont .ثم قم بالإشارة إلى ملف الخط )
لاستخدام الخط لعنصر HTML من خالل ) ( myFirstFontقم بالرجوع إلى اسم الخط ، font-family :الخاصية
{ @font-face
;font-family: myFirstFont
;)src: url(sansation_light.woff
}
{ div
;font-family: myFirstFont
}
{ @font-face
;font-family: myFirstFont
;)src: url(sansation_bold.woff
;font-weight: bold
}
Sansation.هو ملف خط آخر يحتوي على الأحرف الغامقة لخط " "sansation_bold.woffالملف
.باللون الغامق " "myFirstFontستستخدم المتصفحات هذا عندما يتم عرض جزء من النص الذي يحتوي على عائلة الخطوط
بهذه الطريقة يمكنك الحصول على العديد من @font-face .القواعد لنفس الخط
CSS 2D Transforms
CSS 2D Transforms
.نقل العناصر وتدويرها وقياسها وانحرافها CSSتتيح لك تحويالت
:قم بتمرير الماوس فوق العنصر أدناه لرؤية تحول ثنائي الأبعاد
:التالية CSSستتعرف في هذا الفصل على خاصية
transform
)(translate
)(rotate
)(scaleX
)(scaleY
)(scale
)(skewX
CSS 131
)(skewY
)(skew
)(matrix
{ div
;)transform: translate(50px, 100px
}
{ div
;)transform: rotate(20deg
}
.سيؤدي استخدام القيم السالبة إلى تدوير العنصر عكس اتجاه عقارب الساعة
:عكس اتجاه عقارب الساعة بمقدار 20درجة > <divيقوم المثال التالي بتدوير العنصر
{ div
;)transform: rotate(-20deg
}
{ div
;)transform: scale(2, 3
}
:إلى نصف عرضه وارتفاعه الأصلي > <divالمثال التالي يقلل عنصر
{ div
;)transform: scale(0.5, 0.5
}
CSS 132
تعمل الطريقة )(scaleX .على زيادة أو تقليل عرض العنصر
{ div
;)transform: scaleX(2
}
{ div
;)transform: scaleX(0.5
}
{ div
;)transform: scaleY(3
}
{ div
;)transform: scaleY(0.5
}
{ div
;)transform: skewX(20deg
}
{ div
;)transform: skewY(20deg
}
CSS 133
Y:و 10درجات على طول المحور X،بمقدار 20درجة على طول المحور > <divالمثال التالي يحرف العنصر
{ div
;)transform: skew(20deg, 10deg
}
بمقدار 20درجة على طول المحور > <divإذا لم يتم تحديد المعلمة الثانية ،فستكون قيمتها صفًر ا .لذلك ،فإن المثال التالي يحرف العنصر
:السيني
{ div
;)transform: skew(20deg
}
.تأخذ طريقة المصفوفة () ستة معلمات ،تحتوي على وظائف رياضية ،والتي تسمح لك بتدوير العناصر وقياسها ونقلها (ترجمتها) وتحريفها
المعلمات هي كما يلي :المصفوفة
))(matrix(scaleX(), skewY(), skewX(), scaleY(), translateX(), translateY
{ div
;)transform: matrix(1, -0.3, 0, 1, 0, 0
}
CSS 3D Transforms
CSS 3D Transforms
.أيًض ا التحويالت ثالثية الأبعاد CSSيدعم
:قم بتمرير الماوس فوق العناصر أدناه لمعرفة الفرق بين التحويل ثنائي الأبعاد وثالثي الأبعاد
:التالية CSSستتعرف في هذا الفصل على خاصية
transform
)(rotateX
)(rotateY
)(rotateZ
{ #myDiv
;)transform: rotateX(150deg
}
CSS 134
The rotateY() Method
تقوم الطريقة )(rotateY :بدرجة معينة Yبتدوير عنصر حول محوره
{ #myDiv
;)transform: rotateY(150deg
}
{ #myDiv
;)transform: rotateZ(90deg
}
CSS Transitions
CSS Transitions
.بتغيير قيم الخاصية بسالسة خالل مدة محددة CSSتسمح لك انتقالات
transition-delay
transition-duration
transition-property
transition-timing-function
مدة التأثير
.مالحظة :إذا لم يتم تحديد جزء المدة ،فلن يكون لالنتقال أي تأثير ،لأن القيمة الافتراضية هي 0
:أيًض ا تأثيًر ا انتقالًي ا لخاصية العرض ،بمدة ثانيتين > <divأحمر بحجم 100بكسل * 100بكسل .حدد العنصر > <divيوضح المثال التالي عنصر
{ div
;width: 100px
;height: 100px
;background: red
;transition: width 2s
}
CSS 135
{ div:hover
;width: 300px
}
{ div
;transition: width 2s, height 4s
}
ease
يحدد تأثير الانتقال ببداية بطيئة ،ثم سريعة ،ثم تنتهي ببطء (هذا هو الإعداد الافتراضي)
linear
ease-in
ease-out
ease-in-out
)cubic-bezier(n,n,n,n
{ div
;transition-delay: 1s
}
CSS 136
Transition + Transformation
div {
transition: width 2s, height 2s,
transform 2s;
}
div {
transition: width 2s linear 1s;
}
CSS Animations
CSS Animations
يسمحCSS بالرسوم المتحركة لعناصرHTML دون استخدامJavaScript!
ستتعرف في هذا الفصل على الخصائص التالية:
@keyframes
animation-name
animation-duration
animation-delay
animation-iteration-count
animation-direction
animation-timing-function
animation-fill-mode
animation
CSS 137
The @keyframes Rule
داخل CSSعند تحديد أنماط @keyframes .القاعدة ،ستتغير الرسوم المتحركة تدريجًي ا من النمط الحالي إلى النمط الجديد في أوقات معينة
.لكي تعمل الرسوم المتحركة ،يجب عليك ربط الرسوم المتحركة بعنصر ما
> <divستستمر الرسوم المتحركة لمدة 4ثواٍن ،وسيتغير لون خلفية عنصر <div>.يربط المثال التالي الرسوم المتحركة "المثالية" بالعنصر
":تدريجًي ا من "الأحمر" إلى "الأصفر
المدة التي يجب أن يستغرقها الرسم المتحرك حتى يكتمل .إذا animation-durationمالحظة :تحدد الخاصية animation-duration لم يتم تحديد
.الخاصية ،فلن تحدث أي حركة ،لأن القيمة الافتراضية هي 0ثانية ( 0ثانية)
.في المثال أعاله ،حددنا متى سيتغير النمط باستخدام الكلمات الرئيسية "من" و"إلى" (والتي تمثل ( %0البدء) و( %100الاكتمال))
.من الممكن أيًض ا استخدام النسبة المئوية .باستخدام النسبة المئوية ،يمكنك إضافة أي عدد تريده من تغييرات النمط
عندما تكتمل الحركة بنسبة ،%25وتكتمل بنسبة ،%50ومرة أخرى عندما تكتمل الحركة > <divسيغير المثال التالي لون خلفية العنصر
%:بنسبة 100
عندما تكتمل الحركة بنسبة ،%25وتكتمل بنسبة ،%50ومرة أخرى عندما > <divسيغير المثال التالي كًال من لون الخلفية وموضع العنصر
%:تكتمل الحركة بنسبة 100
CSS 138
/* The animation code */
@keyframes example {
0% {background-color:red; left:0px; top:0px;}
25% {background-color:yellow; left:200px; top:0px;}
50% {background-color:blue; left:200px; top:200px;}
75% {background-color:green; left:0px; top:200px;}
100% {background-color:red; left:0px; top:0px;}
}
Delay an Animation
تحدد الخاصية animation-delay تأخيًر ا لبدء الرسوم المتحركة.
يحتوي المثال التالي على تأخير لمدة ثانيتين قبل بدء الرسم المتحرك:
div {
width: 100px;
height: 100px;
position: relative;
background-color: red;
animation-name: example;
animation-duration: 4s;
animation-delay: 2s;
}
ستبدأ الحركة كما لو كانت قد تم تشغيلها بالفعل لمدة، في حالة استخدام قيم سالبة. القيم السلبية مسموح بها أيًض اN ثانية.
ستبدأ الرسوم المتحركة كما لو تم تشغيلها بالفعل لمدة ثانيتين،في المثال التالي:
div {
width: 100px;
height: 100px;
position: relative;
background-color: red;
animation-name: example;
animation-duration: 4s;
animation-delay: -2s;
}
CSS 139
تحدد الخاصية animation-iteration-count .عدد المرات التي يجب أن يتم فيها تشغيل الرسوم المتحركة
:المثال التالي سوف يقوم بتشغيل الرسوم المتحركة 3مرات قبل أن تتوقف
{ div
;width: 100px
;height: 100px
;position: relative
;background-color: red
;animation-name: example
;animation-duration: 4s
;animation-iteration-count: 3
}
:يستخدم المثال التالي القيمة "لا نهائية" لجعل الرسوم المتحركة تستمر إلى الأبد
{ div
;width: 100px
;height: 100px
;position: relative
;background-color: red
;animation-name: example
;animation-duration: 4s
;animation-iteration-count: infinite
}
normal
reverse
alternate
alternate-reverse
يتم تشغيل الرسوم المتحركة إلى الخلف أولًا ،ثم إلى الأمام
{ div
;width: 100px
;height: 100px
;position: relative
;background-color: red
;animation-name: example
;animation-duration: 4s
;animation-direction: reverse
}1
:لجعل الرسوم المتحركة تعمل لألمام أولًا ،ثم للخلف " "alternateيستخدم المثال التالي القيمة
CSS 140
div {
width: 100px;
height: 100px;
position: relative;
background-color: red;
animation-name: example;
animation-duration: 4s;
animation-iteration-count: 2;
animation-direction: alternate;
}
" يستخدم المثال التالي القيمةalternate-reverse" ثم لألمام، لجعل الرسم المتحرك يعمل للخلف أولًا:
div {
width: 100px;
height: 100px;
position: relative;
background-color: red;
animation-name: example;
animation-duration: 4s;
animation-iteration-count: 2;
animation-direction: alternate-reverse;
}
ease
) ثم تنتهي ببطء (هذا هو الإعداد الافتراضي، ثم سريعة،تحديد الرسوم المتحركة ببداية بطيئة
linear
ease-in
ease-out
ease-in-out
cubic-bezier(n,n,n,n)
يوضح المثال التالي بعض منحنيات السرعة المختلفة التي يمكن استخدامها:
CSS 141
Specify the fill-mode For an Animation
على أي عنصر قبل تشغيل الإطار الرئيسي الأول أو بعد تشغيل الإطار الرئيسي الأخير .يمكن لخاصية وضع CSSلا تؤثر الرسوم المتحركة لـ
.تعبئة الرسوم المتحركة تجاوز هذا السلوك
تحدد الخاصية animation-fill-mode نمًط ا للعنصر المستهدف عندما لا يتم تشغيل الرسوم المتحركة (قبل أن تبدأ ،أو بعد انتهائها ،أو
.كليهما)
:يمكن أن تحتوي خاصية وضع تعبئة الرسوم المتحركة على القيم التالية
none
.القيمة الافتراضية
لن تطبق الرسوم المتحركة أي أنماط على العنصر قبل تنفيذه أو بعده
forwards
سيحتفظ العنصر بقيم النمط التي تم تعيينها بواسطة الإطار الرئيسي الأخير (يعتمد على اتجاه الرسوم المتحركة وعدد تكرار
الرسوم المتحركة)
backwards
سيحصل العنصر على قيم النمط التي تم تعيينها بواسطة الإطار الرئيسي الأول (يعتمد على اتجاه الحركة) ،ويحتفظ بها خالل فترة
تأخير الحركة
both
ستتبع الرسوم المتحركة القواعد لكل من الأمام والخلف ،مما يؤدي إلى توسيع خصائص الحركة في كال الاتجاهين
:الاحتفاظ بقيم النمط من الإطار الرئيسي الأخير عند انتهاء الرسم المتحرك > <divيتيح المثال التالي للعنصر
{ div
;width: 100px
;height: 100px
;background: red
;position: relative
;animation-name: example
;animation-duration: 3s
;animation-fill-mode: forwards
}
الحصول على قيم النمط التي تم تعيينها بواسطة الإطار الرئيسي الأول قبل بدء الحركة (أثناء فترة تأخير > <divيتيح المثال التالي للعنصر
:الحركة)
{ div
;width: 100px
;height: 100px
;background: red
;position: relative
;animation-name: example
;animation-duration: 3s
;animation-delay: 2s
;animation-fill-mode: backwards
}
الحصول على قيم النمط التي تم تعيينها بواسطة الإطار الرئيسي الأول قبل بدء الرسم المتحرك <div> ،يتيح المثال التالي للعنصر
:والاحتفاظ بقيم النمط من الإطار الرئيسي الأخير عند انتهاء الرسم المتحرك
{ div
;width: 100px
CSS 142
height: 100px;
background: red;
position: relative;
animation-name: example;
animation-duration: 3s;
animation-delay: 2s;
animation-fill-mode: both;
}
div {
animation-name: example;
animation-duration: 5s;
animation-timing-function: linear;
animation-delay: 2s;
animation-iteration-count: infinite;
animation-direction: alternate;
}
يمكن تحقيق نفس تأثير الرسوم المتحركة المذكور أعاله باستخدام animation خاصية الاختصار:
div {
animation: example 5s linear 2s infinite alternate;
}
CSS Tooltip
إنشاء تلميحات الأدوات باستخدامCSS.
Basic Tooltip
قم بإنشاء تلميح أداة يظهر عندما يقوم المستخدم بتحريك الماوس فوق عنصر ما:
<style>
/* Tooltip container */
.tooltip {
position: relative;
display: inline-block;
border-bottom: 1px dotted black; /* If you want dots under the hoverable text */
}
/* Tooltip text */
.tooltip .tooltiptext {
visibility: hidden;
width: 120px;
background-color: black;
color: #fff;
text-align: center;
padding: 5px 0;
border-radius: 6px;
CSS 143
/* Position the tooltip text - see examples below! */
;position: absolute
;z-index: 1
}
/* Show the tooltip text when you mouse over the tooltip container */
{ .tooltip:hover .tooltiptext
;visibility: visible
}
></style
Example Explained
وأضف )> <divمثل( استخدم عنصر حاوية HTML: ""tooltip فإنه <div>،الفئة إليه .عندما يقوم المستخدم بتمرير الماوس فوق هذا
.سُي ظهر نص تلميح الأداة
مع )> <spanمثل( يتم وضع نص تلميح الأداة داخل عنصر مضمن "class="tooltiptext .
،استخدام الفئة CSS: tooltip position:relative ( وهو ضروري لوضع نص تلميح الأداة position:absolute مالحظة :راجع الأمثلة أدناه حول ).
.كيفية وضع تلميح الأداة
يحتفظ الفصل بنص تلميح الأداة الفعلي .يكون مخفًي ا بشكل افتراضي ،وسيكون مرئًي ا عند التمرير (انظر أدناه) .لقد أضفنا أيًض ا
tooltiptext
.بعض الأنماط الأساسية إليه :عرض 120بكسل ،ولون خلفية أسود ،ولون نص أبيض ،ونص في المنتصف ،وحشو علوي وسفلي 5بكسل
CSSيتم استخدام خاصية border-radius .لإضافة زوايا مستديرة إلى نص تلميح الأداة
يتم استخدام المحدد :hover باستخدام > <divلإظهار نص تلميح الأداة عندما يقوم المستخدم بتحريك الماوس فوق "class="tooltip .
Positioning Tooltips
يتم استخدامه top:-5pxلاحظ أيًض ا أنه " (<div>).النص "القابل للتمرير ) ( left:105%في هذا المثال ،يتم وضع تلميح الأداة على يمين
لوضعه في منتصف عنصر الحاوية الخاص به .نستخدم الرقم 5لأن نص تلميح الأداة يحتوي على حشوة علوية وسفلية تبلغ 5بكسل .إذا قمت
للتأكد من بقائها في المنتصف (إذا كان هذا هو الشيء الذي topبزيادة المساحة المتروكة لها ،قم أيًض ا بزيادة قيمة الخاصية
.تريده) .وينطبق الشيء نفسه إذا كنت تريد وضع تلميح الأداة على اليسار
CSS 144
;right: 105%
}
الخاصية بقيمة ناقص margin-left 60إذا كنت تريد أن يظهر تلميح الأداة في الأعلى أو في الأسفل ،فراجع الأمثلة أدناه .لاحظ أننا نستخدم
.بكسل .يهدف هذا إلى توسيط تلميح الأداة أعلى/أسفل النص القابل للتمرير .تم ضبطه على نصف عرض تلميح الأداة ()60 = 120/2
Tooltip Arrows
لإنشاء سهم يجب أن يظهر من جانب معين من تلميح الأداة ،قم بإضافة محتوى "فارغ" بعد تلميح الأداة ،مع فئة العنصر
.الخاصية .يتم إنشاء السهم نفسه باستخدام الحدود .سيؤدي هذا إلى جعل تلميح الأداة يبدو مثل فقاعة الكالم contentمع ::afterالزائف
:يوضح هذا المثال كيفية إضافة سهم إلى أسفل تلميح الأداة
السهم السفلي
{ .tooltip .tooltiptext::after
;" " content:
;position: absolute
top: 100%; /* At the bottom of the tooltip */
;left: 50%
;margin-left: -5px
;border-width: 5px
;border-style: solid
;border-color: black transparent transparent transparent
}
CSS 145
Example Explained
ضع السهم داخل تلميح الأداة: top: 100% سيتم وضع السهم أسفل تلميح الأداة. left: 50% سوف توسيط السهم.
تحدد الخاصية: مالحظةborder-width قم أيًض ا بتغيير، إذا قمت بتغيير هذا.حجم السهم margin-left سيؤدي هذا.القيمة إلى نفس القيمة
إلى إبقاء السهم في المنتصف.
يتمborder-color إذا كانت جميع. والباقي إلى شفاف، قمنا بتعيين الحد العلوي إلى اللون الأسود.استخدامه لتحويل المحتوى إلى سهم
فسينتهي بك الأمر بصندوق مربع أسود،الجوانب سوداء.
لاحظ أننا قمنا بتعيين لون الحدود السفلية هذه المرة.يوضح هذا المثال كيفية إضافة سهم إلى أعلى تلميح الأداة:
السهم العلوي
.tooltip .tooltiptext::after {
content: " ";
position: absolute;
bottom: 100%; /* At the top of the tooltip */
left: 50%;
margin-left: -5px;
border-width: 5px;
border-style: solid;
border-color: transparent transparent black transparent;
}
السهم الايسر
.tooltip .tooltiptext::after {
content: " ";
position: absolute;
top: 50%;
right: 100%; /* To the left of the tooltip */
margin-top: -5px;
border-width: 5px;
border-style: solid;
border-color: transparent black transparent transparent;
}
السهم الأيمن
.tooltip .tooltiptext::after {
content: " ";
position: absolute;
top: 50%;
left: 100%; /* To the right of the tooltip */
margin-top: -5px;
border-width: 5px;
border-style: solid;
CSS 146
border-color: transparent transparent transparent black;
}
.tooltip .tooltiptext {
opacity: 0;
transition: opacity 1s;
}
.tooltip:hover .tooltiptext {
opacity: 1;
}
Rounded Images
استخدم border-radius الخاصية لإنشاء صور مستديرة:
img {
border-radius: 8px;
}
CSS 147
img {
border-radius: 50%;
}
Thumbnail Images
استخد border الخاصية لإنشاء صور مصغرة.
img {
border: 1px solid #ddd;
border-radius: 4px;
padding: 5px;
width: 150px;
}
img {
border: 1px solid #ddd;
border-radius: 4px;
padding: 5px;
width: 150px;
}
img:hover {
box-shadow: 0 0 2px 1px rgba(0, 140, 186, 0.5);
}
<a href="paris.jpg">
<img src="paris.jpg" alt="Paris">
</a>
Responsive Images
CSS 148
img {
max-width: 100%;
height: auto;
}
Center an Image
قم بتعيين الهامش الأيسر والأيمن،لتوسيط الصورة auto وجعلها في block عنصر:
img {
display: block;
margin-left: auto;
margin-right: auto;
width: 50%;
}
div.polaroid {
width: 80%;
background-color: white;
box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
}
div.container {
text-align: center;
padding: 10px 20px;
}
Image Filters
تضيف خاصيةCSS filter تأثيرات مرئية (مثل التمويه والتشبع) إلى العنصر.
CSS 149
Edge 12.أو Internet Explorerمالحظة :خاصية التصفية غير مدعومة في
مثال
:تغيير لون جميع الصور إلى الأبيض والأسود (رمادي )%100
{ img
;)filter: grayscale(100%
}
{ img:hover
;)transform: scaleX(-1
}
box-reflect يمكن أن تكون قيمة الخاصية below : above أو left أو right .
Example:
{ img
;-webkit-box-reflect: below
}
{ img
;-webkit-box-reflect: right
}
CSS 150
{ img
;-webkit-box-reflect: below 20px
}
{ img
-webkit-box-reflect: below 0px linear-gradient(to bottom,
;))rgba(0,0,0,0.0), rgba(0,0,0,0.4
}
:ومع ذلك ،إذا صممنا الصورة أعاله لتكون نصف عرضها ( 200بكسل) ونفس الارتفاع ( 300بكسل) ،فستبدو كما يلي
CSS 151
{ img
;width: 200px
;height: 300px
}
.نرى أنه يتم ضغط الصورة لتناسب الحاوية التي يبلغ حجمها 300 × 200بكسل (تم إتالف نسبة العرض إلى الارتفاع الأصلية)
هنا object-fit .يأتي دور الخاصية object-fit :يمكن أن تأخذ الخاصية إحدى القيم التالية
fill
.هذا هو الافتراضي
contain
تحافظ الصورة على نسبة العرض إلى الارتفاع ،ولكن يتم تغيير حجمها لتتناسب مع البعد المحدد
cover
.تحافظ الصورة على نسبة العرض إلى الارتفاع وتمأل البعد المحدد
none
أو
{ img
;width: 200px
;height: 300px
;object-fit: cover
}
{ img
;width: 200px
;height: 300px
CSS 152
object-fit: contain;
}
img {
width: 200px;
height: 300px;
object-fit: fill;
}
img {
width: 200px;
height: 300px;
object-fit: none;
}
CSS 153
إذا استخدمنا ;object-fit: scale-down الصورة يتم تصغيرها إلى أصغر نسخة من none أو contain :
{ img
;width: 200px
;height: 300px
;object-fit: scale-down
}
The Image
:انظر إلى الصورة التالية من باريس ،وهي بمقاس 300×400بكسل
بعد ذلك ،نستخدم ;object-fit: cover للحفاظ على نسبة العرض إلى الارتفاع وملء البعد المحدد .ومع ذلك ،سيتم قص الصورة لتناسب ،مثل
:هذا
{ img
;width: 200px
;height: 300px
CSS 154
;object-fit: cover
}
سنستخدم هنا object-position :الخاصية لوضع الصورة بحيث يكون المبنى القديم الرائع في المركز
{ img
;width: 200px
;height: 300px
;object-fit: cover
;object-position: 80% 100%
}
سنستخدم هنا object-position :الخاصية لوضع الصورة بحيث يكون برج إيفل الشهير في المركز
{ img
;width: 200px
;height: 300px
;object-fit: cover
;object-position: 15% 100%
}
CSS Masking
.يمكنك إنشاء طبقة قناع لوضعها فوق عنصر لإخفاء أجزاء من العنصر جزئًي ا أو كلًي ا CSS،باستخدام أقنعة
CSS 155
The CSS mask-image Property
CSSتحدد خاصية mask-image .صورة طبقة القناع
{ .mask1
;)-webkit-mask-image: url(photo.png
;)mask-image: url(photo.png
;-webkit-mask-repeat: no-repeat
;mask-repeat: no-repeat
}
Example Explained
تحدد الخاصية mask-image .الصورة التي سيتم استخدامها كطبقة قناع لعنصر ما
ما إذا كان سيتم تكرار صورة القناع أم لا .تشير القيمة mask-repeatتحدد الخاصية no-repeat إلى أن صورة القناع لن تتكرر (سيتم عرض صورة
.القناع مرة واحدة فقط)
{ .mask1
;)-webkit-mask-image: url(w3logo.png
;)mask-image: url(w3logo.png
}
CSS 156
.mask1 {
-webkit-mask-image: linear-gradient(black, transparent);
mask-image: linear-gradient(black, transparent);
}
.mask1 {
max-width: 600px;
height: 350px;
overflow-y: scroll;
background: url(img_5terre.jpg) no-repeat;
-webkit-mask-image: linear-gradient(black, transparent);
mask-image: linear-gradient (black, transparent);
}
CSS 157
)استخدم التدرج الشعاعي كطبقة قناع (دائرة:
.mask2 {
-webkit-mask-image: radial-gradient(circle, black 50%, rgba(0, 0, 0, 0.5) 50%);
mask-image: radial-gradient(circle, black 50%, rgba(0, 0, 0, 0.5) 50%);
}
نستخدم التدرج الشعاعي (على شكل قطع ناقص) كطبقة قناع لصورتنا،هنا:
.mask3 {
-webkit-mask-image: radial-gradient(ellipse, black 50%, rgba(0, 0, 0, 0.5) 50%);
mask-image: radial-gradient(ellipse, black 50%, rgba(0, 0, 0, 0.5) 50%);
}
CSS Buttons
تعرف على كيفية تصميم الأزرار باستخدامCSS.
CSS 158
display: inline-block;
font-size: 16px;
}
Button Colors
استخدم background-color الخاصية لتغيير لون خلفية الزر:
Button Sizes
استخدم font-size الخاصية لتغيير حجم خط الزر:
Rounded Buttons
استخدم border-radius الخاصية لإضافة زوايا مستديرة إلى الزر:
.button1 {
background-color: white;
color: black;
border: 2px solid #04AA6D; /* Green */
}
...
CSS 159
Hoverable Buttons
استخدم :hover .المحدد لتغيير نمط الزر عند تحريك الماوس فوقه
نصيحة :استخدم transition-duration ":الخاصية لتحديد سرعة تأثير "التحويم
{ .button
;transition-duration: 0.4s
}
{ .button:hover
background-color: #04AA6D; /* Green */
;color: white
}
...
Shadow Buttons
استخدم box-shadow :الخاصية لإضافة ظالل إلى زر
{ .button1
;)box-shadow: 0 8px 16px 0 rgba(0,0,0,0.2), 0 6px 20px 0 rgba(0,0,0,0.19
}
{ .button2:hover
;)box-shadow: 0 12px 16px 0 rgba(0,0,0,0.24), 0 17px 50px 0 rgba(0,0,0,0.19
}
Disabled Buttons
استخدم opacity .الخاصية لإضافة الشفافية إلى الزر (إنشاء مظهر "معطل")
نصيحة :يمكنك أيًض ا إضافة cursor الخاصية بقيمة "غير مسموح بها" ،والتي ستعرض "عالمة ممنوع ركن السيارة" عند تمرير الماوس فوق
:الزر
{ .disabled
;opacity: 0.6
;cursor: not-allowed
}
Button Width
افتراضًي ا ،يتم تحديد حجم الزر حسب محتوى النص الخاص به (بقدر محتواه) .استخدم width :الخاصية لتغيير عرض الزر
CSS 160
Button Groups
قم بإزالة الهوامش وأضفها float:left :إلى كل زر لإنشاء مجموعة أزرار
{ .button
;float: left
}
{ .button
;float: left
;border: 1px solid green
}
{ .button
;display: block
}
Simple Pagination
:إذا كان لديك موقع ويب يحتوي على الكثير من الصفحات ،فقد ترغب في إضافة نوع من ترقيم الصفحات إلى كل صفحة
{ .pagination
;display: inline-block
}
{ .pagination a
;color: black
;float: left
;padding: 8px 16px
;text-decoration: none
}
CSS 161
.pagination a.active {
background-color: #4CAF50;
color: white;
}
.pagination a {
border-radius: 5px;
}
.pagination a.active {
border-radius: 5px;
}
.pagination a {
transition: background-color .3s;
}
Bordered Pagination
استخدم border الخاصية لإضافة حدود إلى ترقيم الصفحات:
.pagination a {
border: 1px solid #ddd; /* Gray */
}
Rounded Borders
أضف حدوًد ا مستديرة إلى الرابط الأول والأخير في الصفحة:نصيحة:
.pagination a:first-child {
border-top-left-radius: 5px;
border-bottom-left-radius: 5px;
}
.pagination a:last-child {
border-top-right-radius: 5px;
CSS 162
border-bottom-right-radius: 5px;
}
.pagination a {
margin: 0 4px; /* 0 is for top and bottom.
Feel free to change it */
}
Pagination Size
تغيير حجم الصفحة مع font-size الخاصية:
.pagination a {
font-size: 22px;
}
Centered Pagination
قم بلف عنصر الحاوية،< مثل( لتوسيط ترقيم الصفحاتdiv>) حولهtext-align:center
.center {
text-align: center;
}
Breadcrumbs
"شكل آخر من ترقيم الصفحات يسمى "فتات الخبز:
ul.breadcrumb {
padding: 8px 16px;
list-style: none;
background-color: #eee;
}
ul.breadcrumb li+li:before {
padding: 8px;
color: black;
content: "/\00a0";
}
CSS 163
CSS Multiple Columns
CSS Multi-column Layout
:متعدد الأعمدة تعريًف ا سهًال لأعمدة نصية متعددة -تماًم ا كما هو الحال في الصحف CSSيتيح تخطيط
column-count
column-gap
column-rule-style
column-rule-width
column-rule-color
column-rule
column-span
column-width
{ div
;column-count: 3
}
CSS 164
div {
column-gap: 40px;
}
div {
column-rule-style: solid;
}
div {
column-rule-width: 1px;
}
div {
column-rule-color: lightblue;
}
div {
column-rule: 1px solid lightblue;
}
< يحدد المثال التالي أن العنصرh2> يجب أن يمتد عبر كافة الأعمدة:
h2 {
column-span: all;
}
CSS 165
تحدد الخاصية column-width .عرًض ا مثالًي ا مقترًح ا لألعمدة
:يحدد المثال التالي أن العرض الأمثل المقترح لألعمدة يجب أن يكون 100بكسل
{ div
;column-width: 100px
}
resize
outline-offset
CSS Resizing
تحدد الخاصية resize .ما إذا كان (وكيف) يجب على المستخدم تغيير حجم العنصر
{ div
;resize: horizontal
;overflow: auto
}
:فقط > <divيتيح المثال التالي للمستخدم تغيير حجم ارتفاع عنصر
{ div
;resize: vertical
;overflow: auto
}
{ div
;resize: both
;overflow: auto
}
:افتراضًي ا .هنا ،استخدمنا خاصية تغيير الحجم لتعطيل إمكانية تغيير الحجم > <textareaفي العديد من المتصفحات ،يمكن تغيير حجم
{ textarea
;resize: none
}
CSS 166
CSS Outline Offset
تضيف الخاصية outline-offset .مسافة بين المخطط التفصيلي وحافة أو حدود العنصر
ملحوظة :المخطط التفصيلي يختلف عن الحدود! على عكس الحدود ،يتم رسم المخطط التفصيلي خارج حدود العنصر ،وقد يتداخل مع محتوى
.آخر .كما أن المخطط التفصيلي ليس جزًء ا من أبعاد العنصر؛ لا يتأثر إجمالي عرض العنصر وارتفاعه بعرض المخطط التفصيلي
يستخدم المثال التالي outline-offset :الخاصية لإضافة مسافة بين الحد والمخطط التفصيلي
{ div.ex1
;margin: 20px
;border: 1px solid black
;outline: 4px solid red
;outline-offset: 15px
}
{ div.ex2
;margin: 10px
;border: 1px solid black
;outline: 5px dashed blue
;outline-offset: 5px
}
مما يعني أنه يمكنك إنشاء متغيرات ذات نطاق محلي أو عام ،وتغيير المتغيرات باستخدام DOM،بإمكانية الوصول إلى CSSتتمتع متغيرات
.وتغيير المتغيرات بناًء على استعالمات الوسائط JavaScript،
هي عندما يتعلق الأمر بألوان تصميمك .بدلًا من نسخ ولصق نفس الألوان مرارًا وتكرارًا ،يمكنك CSSإحدى الطرق الجيدة لاستخدام متغيرات
.وضعها في متغيرات
{ .container
;color: #1e90ff
;background-color: #ffffff
;padding: 15px
}
{ button
;background-color: #ffffff
;color: #1e90ff
CSS 167
;border: 1px solid #1e90ff
;padding: 5px
}
.لإنشاء متغير بنطاق محلي ،قم بإعالنه داخل المحدد الذي سيستخدمه
المثال التالي يساوي المثال أعاله ،ولكن هنا نستخدم الدالة )(var .
بعد ذلك ،نستخدم --white).و (--blueأولًا ،نعلن عن متغيرين عالميين )(var :الدالة لإدراج قيمة المتغيرات لاحًق ا في ورقة الأنماط
{ :root
;--blue: #1e90ff
;--white: #ffffff
}
{ .container
;)color: var(--blue
;)background-color: var(--white
;padding: 15px
}
{ button
;)background-color: var(--white
;)color: var(--blue
;)border: 1px solid var(--blue
;padding: 5px
}
:لتغيير اللون الأزرق والأبيض إلى اللون الأزرق والأبيض الأكثر نعومة ،تحتاج فقط إلى تغيير القيمتين المتغيرتين
{ :root
;--blue: #6495ed
;--white: #faf0e6
CSS 168
}
.container {
color: var(--blue);
background-color: var(--white);
padding: 15px;
}
button {
background-color: var(--white);
color: var(--blue);
border: 1px solid var(--blue);
padding: 5px;
}
:root {
--blue: #1e90ff;
--white: #ffffff;
}
body {
background-color: var(--blue);
}
h2 {
border-bottom: 2px solid var(--blue);
}
.container {
color: var(--blue);
background-color: var(--white);
padding: 15px;
}
button {
background-color: var(--white);
color: var(--blue);
border: 1px solid var(--blue);
padding: 5px;
}
في بعض الأحيان نريد أن تتغير المتغيرات فقط في قسم معين من الصفحة.
CSS 169
يمكننا إعادة تعريف المتغير، بعد ذلك. لنفترض أننا نريد لوًن ا مختلًف ا من اللون الأزرق لعناصر الزر--blue عندما نستخدم. داخل محدد الزرvar(--
blue) فإنه سيستخدم قيمة المتغير المحلي، داخل هذا المحدد--blue المعلنة هنا.
:root {
--blue: #1e90ff;
--white: #ffffff;
}
body {
background-color: var(--blue);
}
h2 {
border-bottom: 2px solid var(--blue);
}
.container {
color: var(--blue);
background-color: var(--white);
padding: 15px;
}
button {
--blue: #0000ff; /* local variable will override global */
background-color: var(--white);
color: var(--blue);
border: 1px solid var(--blue);
padding: 5px;
}
:root {
--blue: #1e90ff;
--white: #ffffff;
}
body {
background-color: var(--blue);
}
h2 {
border-bottom: 2px solid var(--blue);
}
.container {
color: var(--blue);
background-color: var(--white);
padding: 15px;
}
button {
--button-blue: #0000ff; /* new local variable */
CSS 170
;)background-color: var(--white
;)color: var(--button-blue
;)border: 1px solid var(--button-blue
;padding: 5px
}
:لهما نفس العرض والارتفاع المحددين > <divيوضح الرسم التوضيحي التالي عنصرين
{ .div1
;width: 300px
;height: 100px
;border: 1px solid blue
}
):يحتوي على مساحة حشو محددة div2لأن( أعاله بأحجام مختلفة في النتيجة > <divينتهي عنصرا
{ .div2
;width: 300px
;height: 100px
;padding: 50px
;border: 1px solid red
}
CSS 171
{ .div1
;width: 300px
;height: 100px
;border: 1px solid blue
;box-sizing: border-box
}
إليك نفس المثال المذكور أعاله ،مع ;box-sizing: border-box :إلى كليهما > <divإضافة عنصري
{ .div2
;width: 300px
;height: 100px
;padding: 50px
;border: 1px solid red
;box-sizing: border-box
}
theنظًر ا لأن نتيجة استخدام ;box-sizing: border-box هي أفضل بكثير ،يرغب العديد من المطورين في أن تعمل جميع العناصر الموجودة على
.صفحاتهم بهذه الطريقة
box-sizing:يضمن الكود أدناه أن يتم تحديد حجم جميع العناصر بهذه الطريقة الأكثر سهولة .تستخدم العديد من المتصفحات بالفعل
.العديد من عناصر النماذج (ولكن ليس كلها -ولهذا السبب تبدو المدخالت ومناطق النص مختلفة عند العرض%100 :؛) ;border-box
{ *
;box-sizing: border-box
}
دقة
يعد استخدام استعالمات الوسائط أسلوًب ا شائ ًع ا لتقديم ورقة أنماط مخصصة لأجهزة الكمبيوتر المكتبية وأجهزة الكمبيوتر المحمولة
Android).و iPhoneمثل هواتف( والأجهزة اللوحية والهواتف المحمولة
screen .يستخدم لشاشات الكمبيوتر والأجهزة اللوحية والهواتف الذكية وما إلى ذلك
CSS 172
CSS Common Media Features
:فيما يلي بعض ميزات الوسائط الشائعة الاستخدام
Value Description
أو فقط ،فيجب عليك أيًض ا تحديد نوع notنوع الوسائط اختياري (إذا تم حذفه ،فسيتم تعيينه على الكل) .ومع ذلك ،إذا كنت تستخدم
.الوسائط
تكون نتيجة الاستعالم صحيحة إذا كان نوع الوسائط المحدد يطابق نوع الجهاز الذي يتم عرض المستند عليه وكانت كافة ميزات الوسائط في
استعالم الوسائط صحيحة .عندما يكون استعالم الوسائط صحيًح ا ،يتم تطبيق ورقة الأنماط أو قواعد النمط المقابلة ،باتباع القواعد المتتالية
.العادية
:و Onlyو notمعنى الكلمات الرئيسية
.لا :هذه الكلمة الأساسية تعكس معنى استعالم الوسائط بالكامل
فقط :تمنع هذه الكلمة الأساسية المتصفحات القديمة التي لا تدعم استعالمات الوسائط من تطبيق الأنماط المحددة .ليس له أي تأثير على
.المتصفحات الحديثة
.و :تجمع هذه الكلمة الأساسية بين نوع الوسائط وميزة وسائط واحدة أو أكثر
:يمكنك أيًض ا الارتباط بأوراق أنماط مختلفة لوسائط مختلفة وعروض مختلفة لنافذة المتصفح (منفذ العرض)
يغير المثال التالي لون الخلفية إلى اللون الأخضر الفاتح إذا كان عرض إطار العرض 480بكسل أو أكثر (إذا كان إطار العرض أقل من 480
:بكسل ،فسيكون لون الخلفية وردًي ا)
CSS 173
}
}
480 بكسل أو أكثر (إذا كان إطار العرض أقل من480 يوضح المثال التالي قائمة ستطفو على يسار الصفحة إذا كان عرض إطار العرض
) فستكون القائمة أعلى المحتوى،بكسل:
يمكننا تغيير لون الخلفية، لتوضيح مثال بسيط.تعد استعالمات الوسائط أسلوًب ا شائ ًع ا لتقديم ورقة أنماط مخصصة لألجهزة المختلفة
لأجهزة مختلفة:
/* On screens that are 992px or less, set the background color to blue */
@media screen and (max-width: 992px) {
body {
background-color: blue;
}
}
/* On screens that are 600px or less, set the background color to olive */
@media screen and (max-width: 600px) {
body {
background-color: olive;
}
}
CSS 174
Media Queries For Menus
والتي تختلف في التصميم باختالف أحجام الشاشات، نستخدم استعالمات الوسائط لإنشاء قائمة تنقل سريعة الاستجابة،في هذا المثال.
/* Navbar links */
.topnav a {
float: left;
display: block;
color: white;
text-align: center;
padding: 14px 16px;
text-decoration: none;
}
/* On screens that are 600px wide or less, make the menu links stack on top
of each other instead of next to each other */
@media screen and (max-width: 600px) {
.topnav a {
float: none;
width: 100%;
}
}
CSS 175
width: 25%;
}
/* On screens that are 992px wide or less, go from four columns to two columns */
@media screen and (max-width: 992px) {
.column {
width: 50%;
}
}
/* On screens that are 600px wide or less, make the columns stack on top of
each other instead of next to each other */
@media screen and (max-width: 600px) {
.column {
width: 100%;
}
}
وهي استخدام، هناك طريقة أكثر حداثة لإنشاء تخطيطات الأعمدة: نصيحةCSS Flexbox ()انظر المثال أدناه. فهو غير مدعوم في،ومع ذلك
Internet Explorer 10 إذا كنت بحاجة إلى دعم. والإصدارات السابقةIE6-10، )استخدم العوامات (كما هو موضح أعاله.
لمعرفة المزيد حول وحدة تخطيط الصندوق المرن، .
لمعرفة المزيد حول تصميم الويب سريع الاستجابة، .
/* On screens that are 992px wide or less, go from four columns to two columns */
@media screen and (max-width: 992px) {
.column {
flex: 50%;
}
}
/* On screens that are 600px wide or less, make the columns stack on
top of each other instead of next to each other */
@media screen and (max-width: 600px) {
.row {
flex-direction: column;
}
}
CSS 176
/* If the screen size is 600px wide or less, hide the element */
@media screen and (max-width: 600px) {
div.example {
display: none;
}
}
/* If screen size is more than 600px wide, set the font-size of <div> to 80px */
@media screen and (min-width: 600px) {
div.example {
font-size: 80px;
}
}
/* If screen size is 600px wide, or less, set the font-size of <div> to 30px */
@media screen and (max-width: 600px) {
div.example {
font-size: 30px;
}
}
CSS 177
Min Width to Max Width
. (max-width:يمكنك أيًض ا استخدام القيم لتعيين الحد الأدنى للعرض والحد الأقصى للعرض .. ) and (min-width: ) ..
<div>:على سبيل المثال ،عندما يتراوح عرض المتصفح بين 600و 900بكسل ،قم بتغيير مظهر عنصر
استخدام قيمة إضافية :في المثال أدناه ،نضيف استعالم وسائط إضافي إلى الاستعالم الموجود بالفعل باستخدام
:الفاصلة
/* When the width is between 600px and 900px or above 1100px - change the
appearance of <div> */
{ )@media screen and (max-width: 900px) and (min-width: 600px), (min-width: 1100px
{ div.example
;font-size: 50px
;padding: 50px
;border: 8px solid black
;background: yellow
}
}
CSS Flexbox
مضمنة ،للنص
.تعمل وحدة تخطيط الصندوق المرن على تسهيل تصميم هيكل تخطيط مرن وسريع الاستجابة دون استخدام التعويم أو تحديد الموضع
Flexbox Elements
.عليك أولًا تحديد حاوية مرنة Flexbox،للبدء في استخدام نموذج
CSS 178
.يمثل العنصر أعاله حاوية مرنة (المنطقة الزرقاء) تحتوي على ثالثة عناصر مرنة
مثال
:حاوية مرنة تحتوي على ثالثة عناصر مرنة
>"<div class="flex-container
><div>1</div
><div>2</div
><div>3</div
></div
تصبح الحاوية المرنة مرنة عن طريق ضبط display الخاصية على flex :
{ .flex-container
;display: flex
}
flex-direction
flex-wrap
flex-flow
justify-content
align-items
align-content
CSS 179
Example:
تقوم القيمة column :بتكديس العناصر المرنة عمودًي ا (من الأعلى إلى الأسفل)
{ .flex-container
;display: flex
;flex-direction: column
}
تقوم القيمة column-reverse :بتكديس العناصر المرنة عمودًي ا (ولكن من الأسفل إلى الأعلى)
{ .flex-container
;display: flex
;flex-direction: column-reverse
}
تقوم القيمة row :بتكديس العناصر المرنة أفقًي ا (من اليسار إلى اليمين)
{ .flex-container
;display: flex
;flex-direction: row
}
تقوم القيمة row-reverse :بتكديس العناصر المرنة أفقًي ا (ولكن من اليمين إلى اليسار)
{ .flex-container
;display: flex
;flex-direction: row-reverse
}
CSS 180
Example:
تحدد القيمة wrap أن العناصر المرنة سوف تلتف إذا لزم الأمر:
.flex-container {
display: flex;
flex-wrap: wrap;
}
تحدد القيمة nowrap )أن العناصر المرنة لن تلتف (هذا هو الإعداد الافتراضي:
.flex-container {
display: flex;
flex-wrap: nowrap;
}
تحدد القيمة wrap-reverse بترتيب عكسي،أن العناصر المرنة سوف تلتف إذا لزم الأمر:
.flex-container {
display: flex;
flex-wrap: wrap-reverse;
}
.flex-container {
display: flex;
flex-flow: row wrap;
}
CSS 181
Example:
.flex-container {
display: flex;
justify-content: center;
}
تقوم القيمة flex-start )بمحاذاة العناصر المرنة في بداية الحاوية (هذا هو الإعداد الافتراضي:
.flex-container {
display: flex;
justify-content: flex-start;
}
.flex-container {
display: flex;
justify-content: flex-end;
}
تعرض القيمة space-around العناصر المرنة مع وجود مسافة قبل الأسطر وبينها وبعدها:
.flex-container {
display: flex;
justify-content: space-around;
}
.flex-container {
display: flex;
justify-content: space-between;
}
CSS 182
في هذه الأمثلة ،نستخدم حاوية بارتفاع 200بكسل لتوضيح align-items .الخاصية بشكل أفضل
Example:
{ .flex-container
;display: flex
;height: 200px
;align-items: center
}
{ .flex-container
;display: flex
;height: 200px
;align-items: flex-start
}
{ .flex-container
;display: flex
;height: 200px
;align-items: flex-end
}
تقوم القيمة stretch :بتمديد العناصر المرنة لملء الحاوية (هذا هو الإعداد الافتراضي)
{ .flex-container
;display: flex
;height: 200px
;align-items: stretch
}
تقوم القيمة baseline :بمحاذاة العناصر المرنة مثل محاذاة خطوط الأساس الخاصة بها
{ .flex-container
;display: flex
;height: 200px
CSS 183
;align-items: baseline
}
:مالحظة :يستخدم المثال حجم خط مختلًف ا لتوضيح أن العناصر تتم محاذاتها بواسطة الخط الأساسي للنص
في هذه الأمثلة ،نستخدم حاوية بارتفاع 600بكسل ،مع flex-wrap تعيين الخاصية على wrap لتوضيح ، align-content .الخاصية بشكل أفضل
Example:
{ .flex-container
;display: flex
;height: 600px
;flex-wrap: wrap
;align-content: space-between
}
تعرض القيمة space-around :الخطوط المرنة مع وجود مسافة قبلها وبينها وبعدها
{ .flex-container
;display: flex
;height: 600px
;flex-wrap: wrap
;align-content: space-around
}
تقوم القيمة stretch :بتمديد الخطوط المرنة لتشغل المساحة المتبقية (هذا هو الإعداد الافتراضي)
CSS 184
.flex-container {
display: flex;
height: 600px;
flex-wrap: wrap;
align-content: stretch;
}
.flex-container {
display: flex;
height: 600px;
flex-wrap: wrap;
align-content: center;
}
.flex-container {
display: flex;
height: 600px;
flex-wrap: wrap;
align-content: flex-start;
}
.flex-container {
display: flex;
height: 600px;
flex-wrap: wrap;
align-content: flex-end;
}
Perfect Centering
التوسيط المثالي:في المثال التالي سوف نقوم بحل مشكلة نمطية شائعة جًد ا.
قم بتعيين كل من الخصائص:الحل justify-content و align-items على center ، وسيتم توسيط العنصر المرن بشكل مثالي:
CSS 185
{ .flex-container
;display: flex
;height: 300px
;justify-content: center
;align-items: center
}
.يمثل العنصر أعاله أربعة عناصر مرنة زرقاء داخل حاوية مرنة رمادية اللون
>"<div class="flex-container
><div>1</div
><div>2</div
><div>3</div
><div>4</div
></div
order
flex-grow
flex-shrink
flex-basis
flex
align-self
.ليس من الضروري أن يظهر العنصر المرن الأول في الكود كعنصر أول في التخطيط
.يجب أن تكون قيمة الطلب رقًم ا ،والقيمة الافتراضية هي 0
CSS 186
<div class="flex-container">
<div style="order: 3">1</div>
<div style="order: 2">2</div>
<div style="order: 4">3</div>
<div style="order: 1">4</div>
</div>
<div class="flex-container">
<div style="flex-grow: 1">1</div>
<div style="flex-grow: 1">2</div>
<div style="flex-grow: 8">3</div>
</div>
لا تدع العنصر المرن الثالث يتقلص بقدر العناصر المرنة الأخرى:
<div class="flex-container">
<div>1</div>
<div>2</div>
<div style="flex-shrink: 0">3</div>
<div>4</div>
<div>5</div>
<div>6</div>
<div>7</div>
<div>8</div>
<div>9</div>
CSS 187
><div>10</div
></div
>"<div class="flex-container
><div>1</div
><div>2</div
><div style="flex-basis: 200px">3</div
><div>4</div
></div
:اجعل العنصر المرن الثالث غير قابل للنمو ( ،)0وغير قابل للتقلص ( ،)0وبطول أولي يبلغ 200بكسل
>"<div class="flex-container
><div>1</div
><div>2</div
><div style="flex: 0 0 200px">3</div
><div>4</div
></div
في هذه الأمثلة ،نستخدم حاوية بارتفاع 200بكسل لتوضيح align-self :الخاصية بشكل أفضل
CSS 188
>"<div class="flex-container
><div>1</div
><div>2</div
><div style="align-self: center">3</div
><div>4</div
></div
:قم بمحاذاة العنصر المرن الثاني في أعلى الحاوية ،والعنصر المرن الثالث في أسفل الحاوية
>"<div class="flex-container
><div>1</div
><div style="align-self: flex-start">2</div
><div style="align-self: flex-end">3</div
><div>4</div
></div
على سبيل المثال ،إذا كنت تريد إنشاء تخطيط من عمودين لمعظم أحجام الشاشات ،وتخطيط من عمود واحد لأحجام الشاشات الصغيرة (مثل
:نقطة توقف محددة ( 800بكسل في المثال أدناه) columnعند rowإلى flex-directionالهواتف والأجهزة اللوحية) ،فيمكنك تغيير من
{ .flex-container
;display: flex
;flex-direction: row
}
/* Responsive layout - makes a one column layout instead of a two-column layout */
{ )@media (max-width: 800px
{ .flex-container
;flex-direction: column
}
}
العناصر المرنة لإنشاء تخطيطات مختلفة لأحجام الشاشات المختلفة .لاحظ أنه flexهناك طريقة أخرى وهي تغيير النسبة المئوية لخاصية
:الحاوية المرنة حتى يعمل هذا المثال ; flex-wrap: wrapيتعين علينا أيًض ا تضمين
CSS 189
.flex-container {
display: flex;
flex-wrap: wrap;
}
.flex-item-left {
flex: 50%;
}
.flex-item-right {
flex: 50%;
}
Grid Layout
توفر وحدة تخطيط الشبكةCSS مما يسهل تصميم صفحات الويب دون الحاجة إلى، مع صفوف وأعمدة،نظام تخطيط قائم على الشبكة
استخدام العوامات وتحديد المواقع.
Grid Elements
مع عنصر فرعي واحد أو أكثر،يتكون تخطيط الشبكة من عنصر أصل.
<div class="grid-container">
<div class="grid-item">1</div>
<div class="grid-item">2</div>
<div class="grid-item">3</div>
<div class="grid-item">4</div>
<div class="grid-item">5</div>
<div class="grid-item">6</div>
<div class="grid-item">7</div>
<div class="grid-item">8</div>
<div class="grid-item">9</div>
</div>
CSS 190
Display Property
حاوية شبكية عند HTMLيصبح عنصر display تعيين الخاصية الخاصة به على grid أو inline-grid .
{ .grid-container
;display: grid
}
{ .grid-container
;display: inline-grid
}
.جميع العناصر الفرعية المباشرة لحاوية الشبكة تصبح عناصر الشبكة تلقائًي ا
Grid Columns
.تسمى الخطوط الرأسية لعناصر الشبكة بالأعمدة
Grid Rows
.تسمى الخطوط الأفقية لعناصر الشبكة بالصفوف
CSS 191
Grid Gaps
.تسمى المسافات بين كل عمود/صف بالفجوات
column-gap
row-gap
gap
{ .grid-container
;display: grid
;column-gap: 50px
}
{ .grid-container
;display: grid
CSS 192
;row-gap: 50px
}
{ .grid-container
;display: grid
;gap: 50px 100px
}
يمكن أيًض ا استخدام الخاصية gap :لتعيين فجوة الصف ومسافة العمود في قيمة واحدة
{ .grid-container
;display: grid
;gap: 50px
}
Grid Lines
.تسمى الخطوط الموجودة بين الأعمدة بخطوط الأعمدة
.تسمى الخطوط الموجودة بين الصفوف بخطوط الصف
:ارجع إلى أرقام الأسطر عند وضع عنصر الشبكة في حاوية الشبكة
:ضع عنصر الشبكة في سطر العمود ،1واتركه ينتهي في سطر العمود 3
{ .item1
;grid-column-start: 1
;grid-column-end: 3
}
:ضع عنصر الشبكة في سطر الصف ،1واتركه ينتهي عند سطر الصف 3
CSS 193
{ .item1
;grid-row-start: 1
;grid-row-end: 3
}
Grid Container
يتصرف كحاوية شبكة ،يجب عليك تعيين HTMLلجعل عنصر display الخاصية على grid أو inline-grid .
.تتكون حاويات الشبكة من عناصر الشبكة ،الموضوعة داخل الأعمدة والصفوف
.القيمة عبارة عن قائمة مفصولة بمسافات ،حيث تحدد كل قيمة عرض العمود المعني
إذا كنت تريد أن يحتوي تخطيط الشبكة على 4أعمدة ،فحدد عرض الأعمدة الأربعة ،أو "تلقائي" إذا كان يجب أن يكون لجميع الأعمدة نفس
.العرض
{ .grid-container
;display: grid
;grid-template-columns: auto auto auto auto
}
.مالحظة :إذا كان لديك أكثر من 4عناصر في شبكة مكونة من 4أعمدة ،فستضيف الشبكة تلقائًي ا صًف ا جديًد ا لوضع العناصر فيه
{ .grid-container
;display: grid
;grid-template-columns: 80px 200px auto 40px
}
CSS 194
The grid-template-rows Property
تحدد الخاصية grid-template-rows ارتفاع كل صف.
حيث تحدد كل قيمة ارتفاع الصف المعني،القيمة عبارة عن قائمة مفصولة بمسافات:
.grid-container {
display: grid;
grid-template-rows: 80px 200px;
}
يجب أن يكون العرض الإجمالي للشبكة أقل من عرض الحاوية:مالحظة justify-content حتى يكون للخاصية أي تأثير.
.grid-container {
display: grid;
justify-content: space-evenly;
}
.grid-container {
display: grid;
justify-content: space-around;
}
.grid-container {
display: grid;
justify-content: space-between;
}
.grid-container {
display: grid;
CSS 195
justify-content: center;
}
.grid-container {
display: grid;
justify-content: start;
}
.grid-container {
display: grid;
justify-content: start;
}
.grid-container {
display: grid;
justify-content: end;
}
يجب أن يكون الارتفاع الإجمالي للشبكة أقل من ارتفاع الحاوية:مالحظة align-content حتى يكون للخاصية أي تأثير.
.grid-container {
display: grid;
height: 400px;
align-content: center;
}
.grid-container {
display: grid;
height: 400px;
align-content: space-evenly;
}
CSS 196
.grid-container {
display: grid;
height: 400px;
align-content: space-around;
}
.grid-container {
display: grid;
height: 400px;
align-content: space-between;
}
.grid-container {
display: grid;
height: 400px;
align-content: start;
}
.grid-container {
display: grid;
height: 400px;
align-content: end;
}
CSS 197
مالحظة :الخاصية grid-column هي خاصية مختصرة grid-column-start للخصائص grid-column-end .
.لوضع عنصر ،يمكنك الرجوع إلى أرقام الأسطر ،أو استخدام الكلمة الأساسية "امتداد" لتحديد عدد الأعمدة التي سيمتدها العنصر
{ .item1
;grid-column: 1 / 5
}
{ .item1
;grid-column: 1 / span 3
}
{ .item2
;grid-column: 2 / span 3
}
مالحظة :الخاصية grid-row هي خاصية مختصرة grid-row-start للخصائص grid-row-end .
:لتحديد عدد الصفوف التي سيمتدها العنصر " "spanلوضع عنصر ،يمكنك الرجوع إلى أرقام الأسطر ،أو استخدام الكلمة الأساسية
CSS 198
:يبدأ في سطر الصف 1وينتهي في سطر الصف "item1" 4اجعل
{ .item1
;grid-row: 1 / 4
}
{ .item1
;grid-row: 1 / 4
}
:اجعل "العنصر "8يبدأ في سطر الصف 1وسطر العمود ،2وينتهي في سطر الصف 5وسطر العمود 6
{ .item8
;grid-area: 1 / 2 / 5 / 6
}
:يبدأ من سطر الصف 2وسطر العمود ،1ويمتد إلى صفين و 3أعمدة " "item8اجعل
{ .item8
;grid-area: 2 / 1 / span 2 / span 3
}
CSS 199
يمكن الإشارة إلى عناصر الشبكة المسماة بواسطة grid-template-areas .خاصية حاوية الشبكة
:ويمتد على جميع الأعمدة الخمسة في تخطيط شبكة مكون من خمسة أعمدة " "myAreaيحصل العنصر 1على الاسم
{ .item1
;grid-area: myArea
}
{ .grid-container
;'grid-template-areas: 'myArea myArea myArea myArea myArea
:بتوسيع عمودين في تخطيط شبكة مكون من خمسة أعمدة (تمثل عالمات الفترة عناصر بدون اسم) " "myAreaاسمح لـ
{ .item1
;grid-area: myArea
}
{ .grid-container
;'grid-template-areas: 'myArea myArea . . .
}
:لتحديد صفين ،حدد عمود الصف الثاني داخل مجموعة أخرى من الفواصل العليا
{ .grid-container
;'grid-template-areas: 'myArea myArea . . .' 'myArea myArea . . .
}
:قم بتسمية كافة العناصر ،وقم بإنشاء قالب صفحة ويب جاهز لالستخدام
{ .grid-container
grid-template-areas:
''header header header header header header
''menu main main main right right
CSS 200
'menu footer footer footer footer footer';
}
.item1 { grid-area: 1 / 3 / 2 / 4; }
.item2 { grid-area: 2 / 3 / 3 / 4; }
.item3 { grid-area: 1 / 1 / 2 / 2; }
.item4 { grid-area: 1 / 2 / 2 / 3; }
.item5 { grid-area: 2 / 1 / 3 / 2; }
.item6 { grid-area: 2 / 2 / 3 / 3; }
End CSS
CSS 201