Для Internet Explorer 8 (IE8) Я хотел бы использовать следующий CSS:Есть ли какой-нибудь IE8 только css hack?
color : green;
Я хотел бы применить хак, который влияет только на IE8, IE9 не, IE6 и 7.
Для Internet Explorer 8 (IE8) Я хотел бы использовать следующий CSS:Есть ли какой-нибудь IE8 только css hack?
color : green;
Я хотел бы применить хак, который влияет только на IE8, IE9 не, IE6 и 7.
Использование условных комментариев в HTML, например:
<!--[if IE 8]>
<style>...</style>
<![endif]-->
Смотрите здесь: http://www.quirksmode.org/css/condcom.html
Вы можете проверить версии IE надежно, а также убедитесь, что другие браузеры не будут путать.
Можете ли вы не использовать хак, который вы уже указали, а затем использовать IE7 и ниже взломать, чтобы переопределить его?
* Pleeeeease * не используйте хаки! Hacks, чтобы переопределить * другие * хаки еще хуже! –
@codeka - MGS уже настаивает на комментарии к другому ответу, что он будет использовать только хаки, поэтому я просто шел с потоком. Если бы это был я, я бы пошел с условностями, как уже ответил Плантир. –
Использование \0
.
color: green\0;
я однако делать рекомендую условные комментарии, так как вы хотели бы, чтобы исключить IE9, а также, и это еще непредсказуемое, будет ли этот хак повлиять IE9, а также или нет.
Несмотря на это, у меня никогда не было необходимости в специальном взломе IE8. Что это, конкретная проблема IE8, которую вы хотели бы решить? В любом случае, это рендеринг в стандарте IE8? Его визуализатор довольно хорош.
Да, но не забывайте ** пробел ** прямо перед '\ 0', иначе это также повлияет на IE9. – ed1nh0
Выполнение чего-то подобного должно работать на вас.
<!--[if IE 8]>
<div id="IE8">
<![endif]-->
*Your content*
<!--[if IE 8]>
</div>
<![endif]-->
Тогда ваш CSS может выглядеть следующим образом:
#IE8 div.something
{
color: purple;
}
Используйте медиазапросы для разделения браузера:
/* IE6/7 uses media, */
@media, {
.dude { color: green; }
.gal { color: red; }
}
/* IE8 uses \0 */
@media all\0 {
.dude { color: brown; }
.gal { color: orange; }
}
/* IE9 uses \9 */
@media all and (monochrome:0) {
.dude { color: yellow\9; }
.gal { color: blue\9; }
}
/* IE10 and IE11 both use -ms-high-contrast */
@media all and (-ms-high-contrast:none)
{
.foo { color: green } /* IE10 */
*::-ms-backdrop, .foo { color: red } /* IE11 */
}
Ссылки
ваше решение ie8 не является взломом только для IE8, я пытаюсь его использовать на своем компьютере, то есть9 и ie10 также наследуют этот стиль. У вас есть IE8 и ниже взлома? –
@JackZhang Да, используйте IE9, IE10, IE11 и т. Д., Чтобы сбросить правила стиля, установленные взломом IE8. Я обновил ответ этими хаками. –
Решение ie8 все еще не работает только для IE8, '\ 0' будет работать для ie8, ie9 и ie10. На самом деле нет способа взлома для стиля ie8, кроме условного css. –
Существуют различные способы, чтобы получить класс на HTML-элемент, идентифицирующие который IE версии вы соперничающих с: Modernizr, тем HTML 5 Boilerplate, и т.д. - или просто свернуть свой собственный , Затем вы можете использовать этот класс (например, .lt-ie9) в обычном селекторе CSS, без необходимости взлома. Если вы хотите повлиять только на IE8, а не на предыдущие версии, верните старое значение с помощью селектора .lt-ie8.
Если необходимы небольшие изменения в использовании CSS \ 9 это нацеливает IE8 и ниже (IE6, IE7, IE8)
.element {
color:green \9;
}
Лучший способ заключается в использовании условных комментариев в HTML, как это:
<!--[if IE 8]>
<style>...</style>
<![endif]-->
Пробовал его с помощью свойства 'content' и он не будет сдвигаться под IE8 (не проверял другие версии IE). Я предполагаю, что это связано с тем, что мы передаем строковое значение с кавычками, и этот хак (и, возможно, другие хаки тоже) может быть несовместим с ним. 'content:" \ 0020 "\ 9;' – adi518
Это будет работать для пыльник IE8 Версии
.lt-ie9 #yourID {
вашего CSS код
}
Для только IE8 родного браузера:
.classname{
*color: green; /* This is for IE8 Native browser alone */
}
Так недавний вопрос побудил меня заметить селектор установлен хаком для исключения IE 8 только.
.selector, #excludeIE8::before {}
приведет к тому, что IE 8 выкинет весь селекторный набор, в то время как 5-7 и 9-11 прочитают его просто отлично. Любой из ::
селекторов (::first-line, ::before, ::first-letter, ::selection
) будет работать, я просто выбрал ::before
, чтобы линия читала точно. Обратите внимание, что цель поддельной ::before
селектор является быть подделка, так что не забудьте изменить его на что-то другое, если вы на самом деле есть элемент с идентификатором достаточно excludeIE8
Интересно, что в современных браузеров (FF 45 -52, GC 49-57, Edge 25/13) Плохой ::
селектор использует весь селекторный набор (dabblet demo). Это кажется, что последняя версия Safari для Windows (и LTE IE 7, lol) не имеет такого поведения, пока понимает ::before
. Кроме того, я не могу найти что-либо в the spec, чтобы указать, что это предполагаемое поведение, и поскольку это может привести к поломке на любом селекторе набор, содержащий: ::future-legitimate-pseudoelement
... Я склонен сказать, что это ошибка, и одна из них В будущем мы будем грызть наши хвосты.
Однако, если вы хотите только что-то на уровне собственности (а не уровне правил), Ziga выше было лучшее решение, с помощью добавления \9
(пространство является ключом; НЕ CopyPaste, что встроенный как это использует NBSP):
/*property-level hacks:*/
/*Standards, Edge*/
prop:val;
/*lte ie 11*/
prop:val\9;
/*lte ie 8*/
prop:val \9;
/*lte ie 7*/
*prop:val;
/*lte ie 6*/
_prop:val;
/*other direction...*/
/*gte ie 8, NOT Edge*/
prop:val\0;
примечание стороны, я чувствую себя грязным necromancer-, но я хотел где-нибудь документ исключающий-IE8 только селектор установлен хак я нашел сегодня, и это, казалось, самый подходящее место.
Я искал хороший вариант для 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-хак.
Мне нужен хак не условный –
Зачем вам взломать? Следует избегать хаков по самой своей природе (за исключением крайней необходимости). –
Вы должны быть в состоянии пройти долгий путь, используя условные обозначения (которые, кстати, сами взломать), поскольку они позволяют вам иметь определенный раздел кода, выполняемый только в том случае, если определенная версия обнаружена и которая может содержать CSS, HTML, JS, ... – Palantir