את המאמר הבא קראתי בעלון דואל מבית SitePoint.
“… בעלון הקודם ביקשנו חוויות בהתאמת אתרים ל-IE7. הנה כמה תגובות מעניינות שקיבלנו, יחד עם קצת מידע שעשוי לסייע לך להתמודד עם הדפדפן החדש הזה.
מאת אנג’לה (ההדגשה של המחבר):
אני די נוטה לדבוק בסטנדרטים המומלצים, ובודקת די ביסודיות, כך שלא נתקלתי בהפתעות רבות ב-IE7 (יכול להיות שזה שאני פסימית גם עוזר!) Conditional comments מקלים על המלאכה, והופכים את הטיפול בבעיות לאינטואיטיבי למדי. אני בשום אופן איני אוהדת של IE, אבל IE7 אינו גרוע כפי שיכול היה להיות.’
…
דוגמה להערות מותנות:
<link rel="stylesheet" type="text/css" href="styles.css" /> <!--[if IE]> <link rel="stylesheet" type="text/css" href="styles.ie.css" /> <[endif]--> <!--[if lt IE 7]> <link rel="stylesheet" type="text/css" href="styles.ie6.css" /> <[endif]-->
בדוגמה לעיל, רוב הדפדפנים יחילו רק את styles.css לדף. אבל דפדפני אקספולרר יחילו גם את styles.ie.css. בנוסף, גרסאות דפדפני אקספלורר הקודמות ל-IE7 יחילו גם את styles.ie6.css.
כמה מפתחים בקהילה הביעו התנגדות לשימוש בהערות מותנות. במקום זה, הם דוגלים בשימוש בפרצות (hacks) של CSS
כמו * html (הדגמה בעוד רגע). יש לכך מספר סיבות:
- הערות מותנות כרוכות בהוספת קוד HTML נוסף, כאשר המטרה היא לפתור בעיית CSS.
- הערות מותנות מפרידות בין ה-CSS שנועד ל-IE משאר ה-CSS, מה שמקשה לקבל במבט אחד הבנה אילו סטיילים מופעלים על אובייקט .
- הערות מותנות הן בלתי נראות בכל מיני כלי פיתוח (כמו למשל W3C CSS validator), מה שמקשה על עבודה איתם.
ובאמת, אם כל מה שאתם צריכים זה להפעיל סטיילים ספציפיים לדפדפני אקספלורר מלפני גרסה 7, אז הפרצה של html * יכולה להיות פתרון נקי מאד:
div.thingo { float: left; margin-left: 1em; } * html div.thingo { display: inline; /* Fix double float margin in IE6 */ }
מ-IE6 ומטה, הדפדפן חושב בטעות שלאלמנט html יש הורה (parent), שניתן להגיע אליו עם הסלקטור האוניברסלי (*).
מה שיפה בפתרון הזה הוא שזה משתמש בקוד CSS ולידי לחלוטין – ופשוט מסתמך על באג ב-IE6 שינהל את זה באופן שונה.
ברוב המקרים, זה פשוט עניין של העדפה אישית. החריג היחיד הוא כשצריך להפעיל CSS ל-IE7 ולא לשום דפדפן אחר. עדיין לא נמצא פתרון CSS נקי, אז ההימור הטוב ביותר הוא הערות מותנות
…”
http://www.sitepointstatic.com/newsletter/viewissue.php?id=3&issue=160&format=html
עדכון אוגוסט 2013: sitepoint שינו את מבנה האתר שלהם, וכעת הכתבות מהניוזלטרים הישנים שלהם כבר לא נמצאים באותה כתובת. אפשר יהיה להמשיך לגשת אליהם באופן זמני בכתובת sitepointstatic, אבל כנראה שזה לא יהיה לאורך זמן.