Как сделать кроссбраузерную совместимость с IE10 и IE11?

У меня такой вопрос: как сделать кроссбраузерную совместимость с IE 10 и IE11?

Причина в том, что с версии 10 больше не принимаются условные таблицы стилей, поэтому я до сих пор решил проблему кросс-браузерной совместимости. Я всегда использовал их, взятые из этой довольно хорошей документации:

http://css-tricks.com/how-to-create-an-ie-only-stylesheet/

И теперь я не знаю, что делать. Я попытался сделать общий стиль подходящим для IE 11, а затем создать специальный стиль для всех остальных браузеров (не IE), но все же мне нужен условный оператор. А если я напишу так:

         <!--[if !IE]><!-->
            <link rel="stylesheet" type="text/css" href="css/not-ie.css" />
         <!--<![endif]-->

IE11 в любом случае будет ссылаться на эту таблицу стилей css, применяя этот стиль. Так что я не знаю, как отделить стиль для IE от стиля для остальных.

Знаете, как лучше поступить сейчас?

Большое тебе спасибо!


person FrancescoMussi    schedule 05.10.2013    source источник
comment
Вы же не предлагаете использовать одну и ту же таблицу стилей для всех версий IE?   -  person Boaz - CorporateShillExchange    schedule 27.11.2013
comment
Извините, если не указано в вопросе! В основном для версий IE ‹= 9 на самом деле нет проблем, так как я все еще могу использовать условный оператор. Поэтому, если будут какие-то различия, я сделаю таблицу стилей эксклюзивной для конкретной версии IE. Главный вопрос, о котором спрашивали, - это как сделать отдельный стиль для IE 11. В любом случае спасибо, что указали на это.   -  person FrancescoMussi    schedule 27.11.2013
comment
Вы не можете, разработчики IE были достаточно гениальны, чтобы решить, что IE больше не нуждается в условных операторах. Вам нужно будет использовать плагин javascript, например Modernizr.   -  person Praxis Ashelin    schedule 27.11.2013
comment
Что именно изменилось между IE10 и IE11, что заставляет вас использовать условную таблицу стилей? По большей части я обнаружил, что с каждой версией браузера он становится все менее и менее необходимым. Если вы укажете реальную проблему, мы можем помочь с ней: есть довольно хорошее изменение, будет простое решение, которое не требует от вас определения браузера или версии.   -  person Spudley    schedule 27.11.2013
comment
У меня проблема с расстоянием между буквами в названии. в Chrome мне нужно ровно 0,18 em, а в IE 11 мне нужно ровно 0,10 em. Тогда у меня есть различия с прокладкой. Разница между IE и Chrome составляет около 40 пикселей, и мне это нужно для моих основных разделов. Может быть, следующий вопрос для StackOverflow может заключаться в том, как именно определить IE версии › 9 с помощью Modernizr, что вы думаете?   -  person FrancescoMussi    schedule 27.11.2013
comment
Отступы должны быть практически одинаковыми в разных браузерах. Я был бы очень удивлен, если бы в наши дни вам нужно было делать что-то специфичное для браузера с отступами. Ваше расстояние между буквами звучит как проблема со шрифтом, но я не могу сказать, не видя его в действии. Есть ли шанс, что демонстрация jsfiddle покажет нам проблему?   -  person Spudley    schedule 27.11.2013
comment
у вас есть ссылка или вы можете предоставить JSFiddle, который воспроизводит проблемы?   -  person Chris Love    schedule 27.11.2013


Ответы (2)


Я со Спадли. Как выглядит ваше значение семейства шрифтов? Вы используете MAC для проверки Chrome, а затем виртуальную машину для проверки IE? Проверьте Chrome и IE на одном компьютере. Также убедитесь, что вы не используете шрифт MAC only в качестве ведущего шрифта. Также вы используете сброс CSS, который выравнивает настройки, такие как расстояние между буквами? Помните, что у каждого браузера есть базовая таблица стилей, и они не все одинаковы, поэтому сброс — это способ сгладить правила.

person Chris Love    schedule 27.11.2013
comment
Таким образом, проблема с заполнением может быть вызвана чем-то другим, возможно, каким-то другим javascript. В любом случае, согласно тому, что вы, ребята, говорите, ответ на мой первоначальный вопрос Как сделать кроссбраузерную совместимость с IE10 и IE11? в основном это не волнуйтесь, больше нет необходимости делать то, что я правильно понимаю? - person FrancescoMussi; 27.11.2013
comment
@johnnyfittizio: в этом точно не должно быть необходимости, нет. Есть ли на самом деле необходимость в этом в данном конкретном случае — это другой вопрос, но мне кажется, что здесь, вероятно, есть решение, которое не требует ничего специфичного для браузера. У меня еще не было возможности покопаться в вашем jsbin, поэтому я не могу дать вам окончательный ответ. - person Spudley; 27.11.2013
comment
Спасибо, Спадли. Не беспокойтесь о Jsbin. Во всяком случае, вопрос был не в этом. Мне удалось решить проблему с интервалом между буквами, удалив правило размера шрифта для класса (каким-то образом возник конфликт). И с прокладкой теперь все в порядке. Меня все равно интересует, как проверить, является ли браузер IE › 9 с помощью modernizr (использовать как крайнее решение в более сложном случае, когда не ясен источник конфликта). Скоро задам новый вопрос. Спасибо за помощь! - person FrancescoMussi; 27.11.2013

Если вы используете службу PHP, вы можете использовать функцию PHP «get_browser», чтобы определить версию и распечатать тег <link> в соответствии с полученной версией. Или в Javascript используйте что-то вроде «whatbrowser» (http://whatbrowser.net/), чтобы обнаружить его, а затем использовать document.write, чтобы распечатать альтернативный тег <link> с таблицей стилей IE.

person Stefan Dunn    schedule 27.11.2013