شاید گاهی اوقات دیده باشید که سایتی را در فایرفاکس به درستی و زیبایی می بینید ولی در اینترنت اکسپلورر تمام اجزای صفحه به هم ریخته و خراب هستند .
مشکلات با اینترنت اکسپلورر همواره یکی از بزرگترین مشکلاتی بوده و هست که برنامه نویس ها با آن روبه رو بوده اند و با ارائه نسخه های جدید این مرور گر علاوه بر اینکه این مشکلات کم نشد بلکه مشکل ۲ برابر هم شد !
حال در این مطلب میخواهیم به راههای رفع این مشکلات و برنامه نویسی بهینه اشاره ای داشته باشیم ، (اینترنت اکسپلورر مورد بحث در این مطلب نسخه های ۶ و ۷ و فایر فاکس موزد بحث نسخه ۲ و ۳ می باشد).
مایکروسافت در نسخه ۷ اینترنت اکسپلورر بسیاری از مشکلات را بهبود داد البته هنوز مشکلات زیادی وجود داره ولی با اینکه بسیاری از مشکلات روی اینترنت اکسپلورر ۷ برطرف شده ولی باز هم باید تمام صفحه ها روی اینترنت اکسپلورر ۶ هم باز بینی شوند چرا که مرور گر پیش فرض ویندوز اکس پی هست و درصد استفاده کنندگان از این نسخه هم کم نیست .
مشکلات اینترنت اکسپلورر با تگ:
در نسخه های قبلی HTML بیشتر اجزای موجود در صفحه با “ ” ها ساخته می شد ، ولی به علت انعطاف پذیری کم و تولید حجم کد زیاد استاندارد صفحات وب بر پایه استفاده از “
” بنا شد ، و به همین علت اینترنت اکسپلورر اولین مشکلی که داشت مشکل با تگ های div بود و به همین علت بسیاری از برنامه نویسان همواره از table ها استفاده می کردند که کاری بسیار غیر استاندارد و غلط هست .
راه های هک کردن اینترنت اکسپلورر :
منظور از هک کردن نوشتن دستوری هست که فقط اینترنت اکسپلورر قادر به خواندن آن باشد .
خیلی وقت ها مشاهده میشه که وقتی از دستور padding و یا margine برای جا به جا کردن اجزای صفحه استفاده میشه در فایر فاکس درست حرکت انجام میشه و در اینترنت اکسپلورر نصف و یا کمتر از اندازه داده شده حرکت انجام میشه ، در اینجا باید برای اینترنت اکسپلورر مقدار بیشتری مشخص کنید تا نصف اون برابر با مقدار اصلی شود.
و این مقدار جدید را که میخواهیم فقط اینترنت اکسپلورر ببیند با قرار دادن علامت های ” * “و یا ” # ” در ابتدای آنها مشخص میکنیم.
مثال : کد: padding-left:۲۰px
padding-left:۴۰px*
با استفاده از اینکار می توانید نمایش یکسانی در اینترنت اکسپلورر و فایر فاکس داشته باشید .
ولی یکی از مشکلاتی که در اینجور مواقع پیش میاد این هست که چون دستور ستاره دار رو همه نسخه های اینترنت اکسپلورر می خوانند احتمال این به وجود میاید که اینترنت اکسپلورر ۷ دستور اول رو درست نمایش داده باشه و با این کار وقتی دستور ستاره دار رو میخونه به هم ریخته باشه ، و در واقع ما مشکل رو درنسخه ۶ حل کردیم ولی نسخه ۷ به هم ریخته .
حال زمانی که با این مشکل رو به رو شدید باید از تگ important استفاده کنید ، علت استفاده از این تگ این هست که به دستور ما ارجحیت میدهد و این تگ را مرور گر های جدید به خوبی متوجه میشوند و مرور گر های قدیمی (IE ۶) اون رو نمیبینند ، بدین ترتیب عمل میکنیم که دستوری را که میخواهیم اینترنت اکسپلورر ۶ ببیند معمولی و دستور دیگر رو که میخواهیم اینترنت اکسپلورر ۷ و یا فایر فاکس ببینند همراه با important می نویسیم .
مثال :
کد: padding-left:۴۰px
padding-left:۲۰px !important
ولی گاهی اوقات مشکل زیاد هست و با این راه حل ها هم سخت می شه به نتیجه رسید در این موارد باید از راه دیگه ای استفاده کرد :
استفاده از فایل CSS جداگانه برای اینترنت اکسپلورر :
شما میتونید به راحتی یک سی اس اس جدا گانه برای هر کدام از نسخه های اینترنت اکسپلورر بنویسید و با یک دستور شرطی در سربرگ (header) صفحه تون اون رو اضافه کنید و ببینید که زمانی که با اینترنت اکسپلورر وارد اون صفحه می شوید فقط اون سی اس اس مخصوص اینترنت اکسپلورر را خواهید دید .
منبع: میکرو رایانه