Кто-нибудь смог успешно использовать взлом IE CSS #IEroot? Я наткнулся на это от эта статья, но, похоже, у меня это не работает.
Я пытаюсь исправить / взломать ошибку встроенного стиля для создания встроенных блоков li
#featured li {
margin:0px;
padding:0px;
width:317px;
height:310px;
display:inline-block;
border-left:1px #bdbdbd solid;
}
#IEroot #featured li {
display:inline;
}
Любая помощь будет очень принята, спасибо.
На самом деле это UL, но нет, не надо.
Не пробовал использовать это в вашем примере, но если стили неоднозначны, вы можете добавить! Important, чтобы принудительно использовать определенный стиль. Возможно, это решит вашу конкретную проблему (мой ответ не помог вам в этом).






Я использую бета-версию IE8, и пример на странице, о которой вы говорите, не работает. Живая демонстрация, похоже, не учитывает IE8.
Такие хаки умны, но я бы посоветовал вам держаться от них подальше.
Всякий раз, когда вы сталкиваетесь с различиями между браузерами, всегда есть альтернативные способы сделать то же самое, чтобы это работало для всех браузеров.
Я сделал больше веб-сайтов, заполненных CSS, чем я могу сосчитать, и я никогда не прибегаю к специфичному для браузера коду, особенно к тому, который использует ошибки в определенных версиях браузеров. Они решают крохотную проблему сегодня, но завтра доставляют вам вдвое больше головной боли, и их сложно поддерживать.
Если вы настаиваете на использовании такого взлома, обязательно добавьте такой комментарий:
/* >>>>>>> BUTT-UGLY BROWSER HACK! FIX ME!!!!! <<<<<<<< */
#IEroot #featured li {
display:inline;
}
:-)
Это объясняет, почему я его тоже не вижу - у меня тоже есть IE8 (забыл, что скачал ..)
Я бы хотел, чтобы они перестали исправлять хаки, предназначенные для исправления их чертовых ошибок.
ЭТО РАБОТАЕТ, точно так же, как описано, ДАЖЕ в IE8, и на самом деле является довольно умным CSS-хаком для обхода специфичных для IE ошибок.
Вы ДОЛЖЕН заменяете строку DOCTYPE на REAL DOCTYPE, хотя сначала.
Вот код из ссылки, настроенный в качестве рабочего образца.
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<style>
/* all browsers make border red */
#IE { border : 2px solid red; }
/* all browsers see this, but only IE thinks #IEroot exists as an element and makes border blue */
#IEroot #IE { border-color : blue; }
</style>
</head>
<body>
<!--[if IE]>
<div id = "IEroot">
<![endif]-->
<p id = "IE">This browser is IE. (red in all, blue in IE)</p>
<p id = "notIE">This browser is not IE.</p>
<!--[if IE]>
</div>
<![endif]-->
</body>
</html>
Да. Это прекрасно работает в IE с типом документа: <ul id = "Feature"> <li> один </li> <li> два </li> </ul>
Хороший на доктайпе. Я по-прежнему считаю это плохой практикой, хотя дизайн сайта основан на ошибке в IE. Я уверен, что эта конкретная проблема может быть решена действительно простым и элегантным альтернативным способом за считанные минуты. Списки не работают? используйте промежутки или что-то еще.
он должен работать нормально, если у вас есть DIV в разметке HTML, и ТОЛЬКО для IE, как указано в статье.