Joannes
@Joannes
html, css, js, angular, bootstrap

Хак для internet explorer 11?

Приветствую.

Подскажите как прописать стили только для internet explorer 11 версии.
  • Вопрос задан
  • 22147 просмотров
Решения вопроса 1
Joannes
@Joannes Автор вопроса
html, css, js, angular, bootstrap
Конечно на данный момент средствами css как оказалось врятли решишь данную проблему.

По этому выкладываю решение средствами js - http://jsfiddle.net/evildonald/jLuF5/

JS в примере можно сократить, это лишь один из примеров. Кто сможет грамотно сократить до минимума код и поделиться с нами, тот большой молодец -)
Ответ написан
Пригласить эксперта
Ответы на вопрос 7
Ugputu
@Ugputu
php, js, my/mssql, sqlite, html, css, it-consult
Боже мой. Зачем? Зачем вы отделили Q&A от хабра? Люди обленились в край. Сложно погуглить. Тут же теперь адово месево говн будет, а не Q&A.
Ответ написан
@sten8509
нашел решение без js
@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {  
   /* IE10+ specific styles go here */  
}

или
@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {
/* IE10+ CSS styles go here */
}
Ответ написан
miraage
@miraage
Lead Software Engineer
<!--[if IE 11]>
<link rel="stylesheet" href="/css/ie11.css">
<![endif]-->


Не?
Ответ написан
Да в принципе ничем не плох.

Можно скрипт представленный выше подкорректировать так:

$().ready(function() {
var ie10Styles = [
'msTouchAction','msWrapFlow','msWrapMargin','msWrapThrough','msOverflowStyle','msScrollChaining',
'msScrollLimit','msScrollLimitXMin','msScrollLimitYMin','msScrollLimitXMax','msScrollLimitYMax',
'msScrollRails','msScrollSnapPointsX','msScrollSnapPointsY','msScrollSnapType','msScrollSnapX',
'msScrollSnapY','msScrollTranslation','msFlexbox','msFlex','msFlexOrder'
];

var ie11Styles = [
'msTextCombineHorizontal'
];

/*
* Test all IE only CSS properties
*/
var d = document;
var b = d.body;
var s = b.style;
var ieVersion = null;
var property;

// Test IE10 properties
for (var i = 0; i < ie10Styles.length; i++) {
property = ie10Styles[i];

if (s[property] != undefined) {
$('body').addClass("ie-10");
}
}

// Test IE11 properties
for (var i = 0; i < ie11Styles.length; i++) {
property = ie11Styles[i];

if (s[property] != undefined) {
if ($('body').hasClass("ie-10")) {
$('body').removeClass("ie-10").addClass("ie-11");
}
else {
$('body').addClass("ie-11");
}
}
}
});
Ответ написан
@intmain
А conditional compilation не подходит?
То есть если писать в js:
/*@cc_on
.... // тут код, который видят и исполняют только IE, остальные браузеры считают за комментарии
@*/

Конечно, нужно учитывать, что код внутри cc_on будут исполнять все IE, не только 11й. А задача отличить-то его. Но внутри кода можно использовать проверки типа /*@if (@_jscript_version >= ... ) Какой конкретно номер у IE11, думаю, найти не сложно.
Ответ написан
delch
@delch
Frontend developer
А чем плох вариант с js, если других на горизонте нет?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы