تُضيف المتصفحات تلقائيًا بعض الأنماط على عناصر HTML، وتختلف هذه الأنماط باختلاف المتصفح مما يتسبب في ظهور الصفحة بأشكال مختلفة عند عرضها على متصفحات م
تُضيف المتصفحات تلقائيًا بعض الأنماط على عناصر HTML، وتختلف هذه الأنماط باختلاف المتصفح مما يتسبب في ظهور الصفحة بأشكال مختلفة عند عرضها على متصفحات مختلفة، ولتفادي هذا الأمر يجب توحيد أنماط المتصفحات، ومن الشائع استخدام مكتبة normalize.css والتي تضبط بعض الأنماط وتُصحح بعض الأخطاء الشائعة في بعض المتصفحات.
الفرق بين normalize.css و reset.css
الفرق الأساسي بين مكتبة normalize.css ومكتبة reset.css هو أن الأولى تضبط بعض الأنماط لتوحيدها في جميع المتصفحات، بينما تُزيل الثانية جميع الأنماط الافتراضية من العناصر، مما يعني أنك ستضطر لكتابة جميع القواعد من الصفر.
مثال: استخدام Eric Meyer's reset.css
html, body, div, span, applet,object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong,sub, sup, tt,var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,GoalKicker.com – CSS NotesforProfessionals224
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
margin:0;
padding:0;
border:0;
font-size:100%;
font: inherit;
vertical-align: baseline;}
مثال: استخدام normalize.css
/**
* 1. توحيد نوع الخط في جميع المتصفحات
* 2. تصحيح ارتفاع السطر وتوحيده في جميع المتصفحات
* 3. منع تعديل حجم الخط عند تغيير اتجاه العرض في متصفح IE و Safari
*//* Document
========================================================================== */
html {
font-family: sans-serif;/* 1 */
line-height:1.15;/* 2 */
-ms-text-size-adjust:100%;/* 3 */
-webkit-text-size-adjust:100%;/* 3 */}/*
========================================================================== *//**
* إزالة الهوامش
*/
body {
margin:0;}/**
* تصحيح طريقة العرض
*/
article,
aside,
footer,
header,
nav,
section {
display: block;}/**
* تصحيح حجم الخط والهوامش
*/
h1 {
font-size:2em;
margin:0.67em0;}
التحايل على متصفح Internet Explorer
دعم القاعدة display: inline-block في متصفح IE6 و IE7
القاعدة display: inline-block غير مدعومة في متصفحات IE6 و IE7، ولكن من الممكن الحصول على سلوك مماثل لسلوكها عن طريق تطبيق الشيفرة التالية:
zoom:1;*display:inline;
- تُشغِّل الخاصية zoom ميزة hasLayout للعناصر، وهي متاحة فقط في متصفح Internet Explorer.
- تُطبق الخاصية display* القاعدة المحددة فقط على المتصفحات التي تتأثر بالخاصية zoom.
وضع التباين العالي
أُضيف محدد الوسائط ms-high-contrast- في متصفحات Internet Explorer ابتداءً من الإصدار العاشر والإصدارات التي تليه، مما يسمح للمبرمج بضبط الأنماط بناءّ على ما إذا كان المستخدم يستخدم وضع التباين العالي أم لا.
للمحدد ms-high-contrast- ثلاث حالات هي: active، وblack-on-white، وwhite-on-black.
مثال
@media screen and(-ms-high-contrast: active),(-ms-high-contrast: black-on-white){
.header {
background:#fff;
color:#000;
}}
في هذا المثال يتغير لون خلفية العنصر header إلى اللون الأبيض ولون الكتابة للون الأسود إذا كان وضع التباين العالي مُفعَّلًا وفي الحالة black-on-white.
مثال
@media screen and(-ms-high-contrast: white-on-black){
.header {
background:#000;
color:#fff;
}}
في هذا المثال يتغير لون خلفية العنصر header إلى اللون الاسود ولون الكتابة للون الأبيض إذا كان وضع التباين العالي مُفعَّلًا وفي الحالة white-on-black.
استهداف متصفحات IE6 و IE7
لاستهداف متصفحات IE6 و IE7 فقط يجب بدء الخواص بالعلامة (*)
مثال
.hide-on-ie6-and-ie7 {
*display: none;}
استهداف متصفح IE8 فقط
لاستهداف متصفح IE8 فقط يجب وضع جميع المُحددات داخل الاستعلام @media \0 screen { }
مثال
@media \0 screen {
.hide-on-ie8 {
display: none;
}}
أداء المتصفحات
استخدام الخصائص transform و opacity لتجنب تنبيه التخطيط
تغيير بعض الخصائص في CSS يُنبِّه المتصفح لإعاده حساب القيم النهائية للأنماط و التخطيط، مما يتسبب في تبطيء تحميل الصفحة.
مثال: التحريك باستخدام الخواص left و top
#box {
left:0;
top:0;
transition: left 0.5s, top 0.5s;
position: absolute;
width:50px;
height:50px;
background-color: gray;}#box.active {
left:100px;
top:100px;}
تستغرق الصفحة حوالي 11.7 ملي ثانية للتحميل، ومن ثم تستغرق 9.8 ملي ثانية لإعادة رسم الصندوق في الموضع الجديد.
ولتحسين الأداء وتسريع تحميل الصفحة يجب استخدام الخواص transform وopacity للحصول على نفس النتيجة كما هو موضح في المثال التالي:
#box {
left:0;
top:0;
position: absolute;
width:50px;
height:50px;
background-color: gray;
transition: transform 0.5s;
transform: translate3d(0,0,0);}#box.active
transform: translate3d(100px,100px,0);}
ملاحظات للمحترفين ملاحظات CSS للمحترفين
wesam developer
إذا أعجبك المقال أو كان مفيدًا - ضع "أعجبني". اشترك في المدونة اوشارك برأيك في التعليقات! أراك لاحقا
COMMENTS