2014-12-16 3 views
1

При проверке функциональности с помощью Modernizr, например:В тестах Modernizr есть функциональность браузера с префиксом?

if (Modernizr.csstransforms) { 
    $("#someDiv").addClass('rotate'); 
} 

ли тест возвращение Modernizr верно для более ранних браузеров, которые поддерживают только приставку применения этого правила, например, -mz-transform, или он просто проверяет стандарт transform? Я прочитал документацию, но не могу найти ссылку на чек.

Цель состоит в том, чтобы применять преобразования только в том случае, если браузер поддерживает их. Приведем пример.

Предположив в .rotate класса прикладывает CSS 2D преобразования:

.rotate {transform:rotate(30deg)} 

Будет ли необходимость класс включать дополнительные префиксы преобразования, или же Modernizr не учитывает их? Очевидно, нет смысла добавлять во все эти префиксные версии, если Modernizr их не ищет.

.rotate {-moz-transform:rotate(30deg); 
     -ms-transform:rotate(30deg); 
     -o-transform:rotate(30deg); 
     -webkit-transform:rotate(30deg); 
     transform:rotate(30deg)} 

ответ

1

Modernizr проверяет все префиксные и префиксные версии. Однако вам все равно придется применять все эти правила css, поскольку modernizr просто говорит вам, что он поддерживает его, а не конкретное правило, которое работает.

Кроме того, Modernizr могут добавлять классы к html элемента, так что вам не нужно делать

if (Modernizr.csstransforms) { 
    $("#someDiv").addClass('rotate'); 
} 

потому что вместо

.rotate .foo { 
    transform:rotate(30deg) 
} 

вы можете просто сделать

. csstransforms .foo { 
    transform:rotate(30deg) 
} 
Смежные вопросы