Читал статьи гугла по оптимизации страниц для ускорения загрузки и наткнулся на интересный пример здесь: https://developers.google.com/speed/docs/insights/OptimizeCSSDelivery#example
<html>
<head>
<style>
.blue{color:blue;}
</style>
</head>
<body>
<div class="blue">
Hello, world!
</div>
</body>
</html>
<link rel="stylesheet" href="small.css">
<link>
назодится за тегом <html>
Что это? Опечатка или так делать нормально?
В английской версии этой статьи, видимо более новой, отображается весьма отличающийся пример:
<html>
<head>
<style>
.blue{color:blue;}
</style>
</head>
<body>
<div class="blue">
Hello, world!
</div>
<noscript id="deferred-styles">
<link rel="stylesheet" type="text/css" href="small.css"/>
</noscript>
<script>
var loadDeferredStyles = function() {
var addStylesNode = document.getElementById("deferred-styles");
var replacement = document.createElement("div");
replacement.innerHTML = addStylesNode.textContent;
document.body.appendChild(replacement)
addStylesNode.parentElement.removeChild(addStylesNode);
};
var raf = requestAnimationFrame || mozRequestAnimationFrame ||
webkitRequestAnimationFrame || msRequestAnimationFrame;
if (raf) raf(function() { window.setTimeout(loadDeferredStyles, 0); });
else window.addEventListener('load', loadDeferredStyles);
</script>
</body>
</html>
Это не вредный совет. Метатег link
особенно с объемным css-файлом, размещенный там где он должен быть (в секции head
) откладывает рендер станицы до полной загрузки css. В коде примера сделаны 2 вещи:
1. В head
размещен inline-css. Это методика называется critical path css и позволяет отобразить правильно или почти правильно первую 1000 пикселей страницы.
2. Откладывает загрузку полного файла стилей почти до конца рендера страницы.
Второй момент да, не соответствует спецификации, но это легко исправить заменив его простым js-кодом, добавляющим в секцию head
тег link
c полным css.
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Виртуальный выделенный сервер (VDS) становится отличным выбором
ЗдравствуйтеЕсть два блока, нужно чтобы при наведении на блок 1 появлялся блок 2 и не исчезал до тех пор - покуда курсор мыши находится в области...
Написал код чтобы когда скрол браузера достигает определённой позиции, навигация прилипала к верху