Как дать Internet Explorer разные CSS-строки? - PullRequest
0 голосов
/ 29 марта 2011

Представь, что у меня DIV. Я хочу отобразить его в строке вместе с другими элементами div, поэтому я даю ему display: inline-block вместе с другими определениями стилей в таблице CSS.

Теперь Internet Explorer хочет иметь display: inline; для поведения, которое я хочу.

Как дать Internet Explorer отдельную команду стилей для переопределения определения для хороших браузеров, поэтому только IE будет иметь display: inline;. Из-за технических ограничений я не могу использовать <![If IE] --> -материал в HTML, мне нужно оставаться в файле CSS.

Ответы [ 4 ]

2 голосов
/ 29 марта 2011

Вы можете использовать селекторы следующим образом:

\9 - IE8 и ниже, * - IE7 и ниже, _ - IE6

Так что в вашем случае:

*display: inline;

Вы можете просто добавить это к остальной части CSS:

div{
display: inline-block;
// some;
// other;
// css;
*display: inline;
}

Прочтите мой пост в блоге об этом.

Обновление

IE версии 5 до 8. (Все они затронуты) - Cobra_Fast 1 мин. Назад

Так что в этом случае,вы бы использовали

div{display\9:inline;}
1 голос
/ 29 марта 2011

Ужасный способ сделать это: http://www.webdevout.net/css-hacks

Даже если вы не можете изменить HTML-код, который я прочитал http://paulirish.com/2008/conditional-stylesheets-vs-css-hacks-answer-neither/

0 голосов
/ 29 марта 2011

Чтобы заставить inline-block работать с элементами уровня блока в IE7, я часто добавляю это к своим ответам:

Я очень надеюсь, что то, что я предлагаю везде, на самом деле работает: D

См .: http://blog.mozilla.com/webdev/2009/02/20/cross-browser-inline-block/

selector {
    display: inline-block;
    *display: inline;
    zoom: 1;
}
0 голосов
/ 29 марта 2011

IE на самом деле имеет довольно хорошую поддержку для встроенного блока - если элемент изначально является встроенным элементом.Поэтому попробуйте использовать span вместо div.

...