Я использую полифилл, чтобы размер окна работал со всеми браузерами с поддержкой JS, чтобы предотвратить проблемы с макетом, которые выглядят следующим образом:
<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 */
Мне интересно, являются ли элементы с префиксом теперь избыточными, поскольку полифилл переопределяет их, или есть ли преимущество в их наличии и т. Д.?