Я использую polyfill так что коробчатого проклейки должен работать со всеми JS включен браузеры, чтобы предотвратить проблемы компоновки, которая выглядит следующим образом:Модернизатор Polyfill против Префиксальный CSS3
<script type="text/JavaScript">
//extend modernizer
Modernizr.addTest("boxsizing", function() {
return Modernizr.testAllProps("boxSizing") && (document.documentMode === undefined || document.documentMode > 7);
});
$(function(){
if(!($('html').hasClass('boxsizing'))){
$('.boxSized, .boxSized *').each(function(){
var fullW = $(this).outerWidth(),
actualW = $(this).width(),
wDiff = fullW - actualW,
newW = actualW - wDiff;
$(this).css('width',newW);
});
}
});
</script>
Однако, глядя на этот код, когда когда-либо браузер не поддерживает box-sizing:
, он будет использовать этот короткий полиполк, который, как я думаю, не должен сильно влиять на производительность сайта?
Моя проблема в том, что я использую префиксные элементы, например.
-moz-box-sizing:border-box; /* Firefox */
-webkit-box-sizing:border-box; /* Safari */
мне интересно, если Префиксальные элементы теперь избыточны как polyfill отменяет их, или если есть еще польза от них и т.д.?
Таким образом, вы не видите необходимости добавлять условный оператор в polyfill для IE, поскольку он будет подбираться только тогда, когда это необходимо (браузер не поддерживает какой-либо скрежет?) И не должен сильно влиять на производительность сайта когда браузер поддерживает коробку. –
Правильно. Для браузеров, поддерживающих «размер окна», ударное воздействие будет минимальным. Он должен будет загрузить Modernizr (но вы все равно это делаете, правда?), И он должен будет выполнить тест Modernizr, но это довольно легкий, поэтому не так сильно. Вы можете сделать его нулевым воздействием на другие браузеры, используя условные комментарии вместо теста modernizr, но разница действительно не будет такой. – Spudley
действительно Модернизатор уже загружен, когда вы говорите, что для браузеров, поддерживающих размер окна, это включает сафари и firefox и т. Д., Используя префиксные стили. То, что я пытаюсь получить так же, как это переопределение префиксов moz и webkit и использование JS polyfill, например, firefox в некоторых случаях не поддерживает тег box-size, сам по себе, но явно поддерживает префиксные стили, так что флаг JS как без коробки! извините, что я так запутался, что начал запутываться. –