و نعم هذا فصل اخر من سلسلة دروس لغة HTML و الـCSS حيث سنتعرف فيه على خصائص جديدة ، هذه الخصائص التي سنتعرفها تخص التحكم في حدود العناصر و التحكم في ظلها ، خاصيتان صغيرتان و بسيطتان للغاية سنتعرف عليهما في ثلاث فقرات سريعة .
و بالطبع سنحتاج إلى ما تعلمناه عن الألوان في الفصول السابقة لأن خصائص التحكم في حدود العناصر و خصائص التحكم في الظل تتطلبان تحديد الألوان .
أولا ما هي هذه الحدود التي نحن بصدد التكلم عنها ؟ كل عنصر نقوم بإنشائه يظهر في الموقع على شكل مستطيل أو صندوق ، فعندما نقوم تظليل النصوص مثلا ستجد أن الظل يأخذ شكل مستطيل كما تشاهد الان و تلك الجوانب التي تحد المربع تسمى حدود العنصر ( Element's Border ) ، و هناك خصائص CSS تختص بالتحكم في هذه الحدود و هي ما سنتعرف عليها فيم يلي .
الفهرس
التحكم في حدود العناصر
و كما رأينا في فصل التحكم في خلفيات العناصر ، يمكن جمع هذه الخاصيات الثلاث في خاصية واحدة فقط و هي border ، و هي تأخذ جميع قيم الخاصيات الثلاث السابقة .
بالنسبة للخاصية border فهي تأخذ قيمها كالتالي :
- سمك أو عرض الحدود : يتم تحديده عبر قيم عددية معبر عنها بالوحدات المعروفة ( px , cm , em إلخ ... )
- لون الحدود : تأخذ القيم الخاصة بتحديد الألوان ، إما بتقنية الـHexcolor أو الـrgb أو غيرها .
- شكل الحدود : و هنا أيضا تملك عدة إختيارات حيث يمكن لحدود العنصر أن تكون خطا متصلا ، خطا متقطعا ، نقطا و غيرها و ذلك عن طريق القيم التالية :
- none : تعني لا شيء ، لا تظهر حدود العنصر أبدا حيث يبقى العنصر عاديا كيفما كان يظهر سابقا .
- solid : تظهر الحدود على شكل خط متصل عادي .
- dotted : تظهر على شكل نقط .
- dashed : تظهر على شكل خط متقطع .
- double : تظهر الحدود مضاعفة .
- groove : لا أدري حقا كيف أصفه ، شاهده في الصورة أسفله .
- ridge : ......
- inset : ......
- outset : ......
border: 3px dotted red ;
ترتيب القيم لا يهم ، فهو لا يأثر أبدا .
الحد الأعلى ، الأيمن ، الأيسر ، الأيسر .
لنقل أننا أردنا أن نضع لعنصر ما حدودا من نوع مختلف ، حيث الحد الأعلى يختلف عن الحد الأيمن أو شيء من هذا القبيل . الأمر بسيط للغاية فالـCSS توفر لنا القدرة على تخصيص كل طرف بحد مختلف عبر الخصائص border-top ( يعني الحد الأعلى ) ، border-bottom ( الحد الأسفل ) ، border-left ( الحد الأيسر ) ، border-right ( الحد الأيمن ) .
p {
border-top: 1px dotted green ;
border-bottom: 2px solid #DD292A;
border-left: none;
border-right: none;
}
border-top: 1px dotted green ;
border-bottom: 2px solid #DD292A;
border-left: none;
border-right: none;
}
و بالطبع يمكننا تخصيص حدود أي عنصر كيفما كان ، عنصر الفقرة أو <span> أو أي عنصر اخر .
صقل جوانب الحدود
الخاصية المسؤولة عن ذلك هي border-radius و هي تأخذ قيما عديدية معبر عنها بالوحدات المعروفة ( كالـpx ، cm و غيرها )
p {
border: 2px solid #333;
border-radius: 10px;
}
border: 2px solid #333;
border-radius: 10px;
}
ستصقل الجوانب حيث ستصبح دائرية و لن تظهر الجوانب حادة ، و القيمة 10px تعبر عن شعاع الدائرة التي تتكون في الجوانب .
أهلا و سهلا بك في مدونة عاشق النت ، هنا ستجد دروسا شيقة عن جميع لغات الوب .
أنت الان في فصل من دروس لغة HTML / CSS
أنت الان في فصل من دروس لغة HTML / CSS
يمكننا أيضا تحديد شعاع الدوائر في كل جانب على حدة حيث يمكن أن نكتب :
border-radius: 10px 20px 15px 10px;
هذه القيم تخص الأطراف الأربعة بالترتيب التالي :
- الطرف العلوي على اليمين .
- الطرف العلوي على اليسار .
- الطرف السفلي على اليسار .
- الطرف السفلي على اليمين .
كما لو أننا ندور في نفس منحى عقارب الساعة .
خاصية border-radius تعمل على المتصفحات الجديدة فقط ، لأنها خاصية حذيثة نوعا ما ، و في بعض الإصدارات من غوغل كروم أو موزيلا فايرفوكس سنحتاج إلى إضافة بعض المقاطع قبل الخاصية حيث سنكتب webkit-border-radius- بالنسبة للغوغل كروم و سفاري و moz-border-radius- بالنسبة لموزيلا فايرفوكس .
خاصية border-radius تعمل على المتصفحات الجديدة فقط ، لأنها خاصية حذيثة نوعا ما ، و في بعض الإصدارات من غوغل كروم أو موزيلا فايرفوكس سنحتاج إلى إضافة بعض المقاطع قبل الخاصية حيث سنكتب webkit-border-radius- بالنسبة للغوغل كروم و سفاري و moz-border-radius- بالنسبة لموزيلا فايرفوكس .
التحكم في ظلال العناصر
في هذه الفقرة سنتعرف على نوعين من الظلال :
- ظلال تخص العناصر بإعتبارها صناديق .
- ظلال نخص النصوص و محتوياتها .
ظلال العناصر Box-shadow
تأخذ خاصية box-shadow أربع قيم هي بالترتيب .
و كمثال لنأخذ ما يلي :تأخذ خاصية box-shadow أربع قيم هي بالترتيب .
- المسافة الأفقية التي يبعد بها الظل عن العنصر و هي قيمة عددية .
- المسافة العمودية التي يبعد بها الظل عن العنصر و هي قيمة عددية .
- المسافة التي يتبدد خلالها الظل و هي قيمة عددية أيضا .
- لون الظل ، و يأخذ قيم الألوان .
box-shadow: 2px 2px 0 #999;
أهلا و سهلا بك في مدونة عاشق النت ، هنا ستجد دروسا شيقة عن جميع لغات الوب .
أنت الان في فصل من دروس لغة HTML / CSS
أنت الان في فصل من دروس لغة HTML / CSS
أرأيت الان ماذا توفر لنا الـCSS3 من خصائص جميلة .
في المثال السابق أخذنا المسافة التي يتبدد خلالها الظل هي 0 ، أي لا يتبدد أبدا ، في المثال التالي سنرى كيف يتبدد الظل عند الزيادة في قيمة مسافة التبدد .
box-shadow: 2px 2px 4px #999;
أهلا و سهلا بك في مدونة عاشق النت ، هنا ستجد دروسا شيقة عن جميع لغات الوب .
أنت الان في فصل من دروس لغة HTML / CSS
أنت الان في فصل من دروس لغة HTML / CSS
الفرق واضح جدا ، أليس كذلك !!
ماذا لو أردنا بأن يكون الظل داخل الصندوق و ليس خارجه ؟ الأمر بسيط للغاية يكفي أن نظيف القيمة inset إلى الخاصية box-shadow و هكذا نكون قد حققنا ما نريد .
box-shadow: inset 1px 1px 2px #999;
أهلا و سهلا بك في مدونة عاشق النت ، هنا ستجد دروسا شيقة عن جميع لغات الوب .
أنت الان في فصل من دروس لغة HTML / CSS
أنت الان في فصل من دروس لغة HTML / CSS
إنطلاقا من خاصية box-shadow يمكن خلق عدة تأثيرات تجعل من صفحاتنا أكثر جمالا و أكثر تفاعلية .
خاصية box-shadow كما قلنا حذيثة ، و بالتالي هناك بعض المتصفحات التي لا تشغلها ، لذلك لا تنس إضافة المقاطع -webkit- و -moz- كي تعمل هذه الخاصية على تلك المتصفحات .
ظلال النصوص text-shadow .
تأخذ نفس قيم الخاصية السابقة و بنفس الترتيب ، غير أنها تطبق على العناصر باعتبارها صناديق ، بل على محتوى تلك العناصر ، أي النصوص التي بداخلها .
لنشاهد المثال التالي :
text-shadow: 0 1px 1px #CCC;
أهلا و سهلا بك في مدونة عاشق النت ، هنا ستجد دروسا شيقة عن جميع لغات الوب .
أنت الان في فصل من دروس لغة HTML / CSS
أنت الان في فصل من دروس لغة HTML / CSS
بهذا نكون قد أكملنا الفصل .
السلام عليكم
ردحذفلو سمحت اخي
هل استطيع ان اعمل حدود مزخرفه .. يعني مثلا تكون صوره من الجوانب ليست تحديد بلون
السلام عليكم ورحمه الله وبركاته انا احمد طارق من موقع فهمنى دوت كوم انا شيفك بتبدع بلا حدود وتعطى كل ما عندك للزوار بلا مقابل وانا قررت انى هشتريلك دومين ارجو انك تكلمنى عبر الفيس بوك او التويتر لكى اعطيك الرابط
ردحذففيس بوك: www.fb.com/ahmedtarek01157085889
الاميل: ahmed@fahmney.com