Я использую Modernizr v3 на своем веб-сайте для проверки поддержки flexbox.Modernizr: IE10 & Flexbox: Как получить обнаруженную оболочку IE10
Modernizr добавляет класс кузова "flexbox"
для браузеров, которые его поддерживают, и "no-flexbox"
для браузеров, которые этого не делают. Поскольку браузеры, которые не поддерживают flexbox, составляют лишь меньшинство моей аудитории, я использовал класс "no-flexbox"
, чтобы обеспечить возврат CSS. Например:
.ad { /* Default CSS */
display: flex;
}
.no-flexbox .ad { /* Fallback CSS*/
display:table;
}
Все работает отлично, за исключением IE10, а Modernizr добавляет класс «не-Flexbox» к нему, даже если IE10 не поддерживает Flexbox, он просто использует старый синтаксис. Поэтому в IE10 мой макет разбит, поскольку он читает как стили flex, так и non-flexbox.
In this thread, в нем говорится, что модернизатор имеет стиль flexboxtweener для IE10. Поэтому я подумал, что могу переписать свои пасы, чтобы использовать вместо .no-flexboxtweaner
. no-flexbox
.
Проблема заключается в том, что браузеры, поддерживающие новый синтаксис flexbox, получают класс no-flexboxtweaner, поэтому они читают резервный код.
Как настроить его так, чтобы только браузеры, не поддерживающие любую форму flexbox (независимо от того, являются ли они новыми или старыми), получают класс «нет».
Я знаю, что мог бы делать .no-flexbox .ad, .no-flexboxtweaner .ad ", но потом это раздувает CSS (плюс работает два теста Modernizr). Я бы предпочел только один тест/класс.