IE8 CSS Hack - лучший способ? - PullRequest
       47

IE8 CSS Hack - лучший способ?

9 голосов
/ 12 апреля 2011

Кто-нибудь может порекомендовать лучший способ взлома стилей IE8 с помощью CSS, я недавно сделал для облегчения рендеринга IE8 как IE7 - но задавался вопросом, лучше ли было добавлять хаки IE8?

Ответы [ 7 ]

10 голосов
/ 12 апреля 2011

Вы должны поменять свой метод.Сначала ваш сайт должен хорошо выглядеть в современных браузерах (таких как Firefox, Chrome, Opera, IE 9), а затем вы можете начать беспокоиться о других.

Как и предполагали другие, условные комментарии могут быть вашим другом.

Во-первых, вы должны разработать свой CSS, чтобы он отлично смотрелся в современных браузерах.Затем проверьте IE8, посмотрите, какие проблемы у вас возникают.Если вам нужно, включите специфичную для IE таблицу стилей.После этого вы можете проверить в IE7, а затем IE6, поддерживает ли он, и добавить дополнительные исправления.

Пример:

<link rel="stylesheet" href="normal.css" type="text/css" />
<!--[if lt IE 9]><link rel="stylesheet" type="text/css" href="ie8.css"><![endif]-->
<!--[if lt IE 8]><link rel="stylesheet" type="text/css" href="ie7.css"><![endif]-->

В этом случае вы включаете normal.css, который предназначен длясовременные браузеры.Вы обнаружили некоторые странные проблемы с IE8, поэтому в ie8.css вы решаете проблемы.Вам не нужно включать все ваши селекторы, только те, которые нуждаются в исправлении (значения будут переопределены для IE 8 и ниже).После этого, если в IE7 все еще есть какие-то странные вещи, вы можете добавить свой ie7.css, исправить его и т. Д.

Пожалуйста, обратитесь к ссылкам, которые другие дали вам, чтобы получить больше информации об использованииусловных комментариев.

Наконец: making IE8 render as IE7 for ease никогда не является хорошей идеей, и ее следует избегать.IE7 - это далекое прошлое (в мире информационных технологий IE8 также должен быть далекым прошлым ...), развиваться для настоящего и будущего, и после этого вы можете заботиться о людях, которые все еще увязли в старых технологиях (основанных наВаша аудитория и бизнес-план).

5 голосов
/ 12 апреля 2011

Как и другие опубликованные ответы, вы можете использовать условные комментарии, но это добавит один HTTP-запрос, когда пользователь использует IE8.Вы можете использовать хак \ 0 в css файле

img{
width:200px;//other broswers
width:100px\0;//only IE8
}
5 голосов
/ 12 апреля 2011

Использование условных комментариев .

2 голосов
/ 12 апреля 2011

Можете ли вы объяснить немного больше, что вы хотите?

Как правило, IE8 полностью совместим со стандартами, поэтому просто убедитесь, что ваш HTML-документ находится в режиме стандартов, и предоставьте IE8 такую ​​же таблицу стилей, как и любому другому браузеру.

Если IE работает, то лучшее решение - использовать Условные комментарии , чтобы дать IE отдельную таблицу стилей.

0 голосов
/ 30 сентября 2016

Я искал хороший вариант для IE10 и ниже CSS-стилей (но он будет работать только для IE8), я не хотел иметь дополнительную таблицу стилей для удобства чтения, и мне пришла в голову эта идея:

<!--[if lt IE 10]><div class="column IE10-fix"><![endif]-->
<!--[if !lt IE 10]><!--><div class="column"><!--<![endif]-->

Я объявляю свой div или все, что вам нужно, с дополнительным классом, это позволяет мне иметь дополнительный CSS в той же таблице стилей в очень удобочитаемой форме.

Это допустимо W3C и не странный взлом CSS.

0 голосов
/ 19 февраля 2014

ie8 только: лучший способ -

body{background:#f00\0/;}

\ 0 / это Ie8 CSS Hack

0 голосов
/ 12 апреля 2011

Используйте библиотеку Javascript ie7-js , которая делает магию, заставляя старые версии IE вести себя как настоящие браузеры с обработкой HTML и CSS. Затем, как предложили другие, напишите свой код в соответствии со стандартами, который хорошо работает с последними версиями Chrome, Firefox, Opera и т. Д.

...