7 советов по оптимизации CSS для ускорения загрузки страниц
1. Найдите узкие места производительности
2. Минифицируйте и сжимайте CSS-файлы
3. Используйте Flexbox и CSS Grid
4. Используйте тег <link> вместо правила
6. Избегайте правила !important
7. Выполняйте рефакторинг
Примеры выполнения, а также подробное описание советов вы можете посмотреть в статье.
1. Найдите узкие места производительности
2. Минифицируйте и сжимайте CSS-файлы
3. Используйте Flexbox и CSS Grid
4. Используйте тег <link> вместо правила
@import
5. Используйте градиенты и SVG вместо растровых изображений6. Избегайте правила !important
7. Выполняйте рефакторинг
Примеры выполнения, а также подробное описание советов вы можете посмотреть в статье.
👍1
Интересуешься веб разработкой? Тогда рекомендуем тебе подписывайтесь на канал @frontend_info. Каждый день публикуются отборные статьи, туториалы, видеокурсы и многое другое из мира современного фронтенда.
This media is not supported in your browser
VIEW IN TELEGRAM
Таймер обратного отсчета на нативном JS.
Считает время до указанной даты в переменной deadline.
С помощью метода Date.parse автор получает количество миллисекунд, прошедших с 1 января 1970 года до выбранной даты.
Затем, с помощью математических вычислений получает дни, часы, минуты и секунды, которые подставляет в HTML.
Считает время до указанной даты в переменной deadline.
С помощью метода Date.parse автор получает количество миллисекунд, прошедших с 1 января 1970 года до выбранной даты.
Затем, с помощью математических вычислений получает дни, часы, минуты и секунды, которые подставляет в HTML.
Установка gulp + browsersync
1. Инициализируем проект и устанавливаем необходимые пакеты.
Tакже gulp поддерживает разные плагины, например:
Sass - компиляция sass в css;
gulp-watch — мониторинг изменений;
Gulp autoprefixer — автоматическая проставновка браузерных префиксов.
1. Инициализируем проект и устанавливаем необходимые пакеты.
npm init
npm i –g gulp
npm i --save-dev gulp
npm i --save-dev browser-sync2. Создаем файл gulpfile.js и выполняем настройку пакетов.
var gulp = require('gulp');
var browserSync = require('browser-sync').create();
gulp.task('browser-sync', () => {
browserSync.init({
server: {
baseDir: "./"
}
});
});
3. Запускаем gulp и получаем автоматическую перезагрузку страниц при изменении файлов.Tакже gulp поддерживает разные плагины, например:
Sass - компиляция sass в css;
gulp-watch — мониторинг изменений;
Gulp autoprefixer — автоматическая проставновка браузерных префиксов.
ES6 - Symbol
Symbol это уникальный и неизменяемый тип данных.
Свойства символов:
При создании символам можно дать имя.
Symbol это уникальный и неизменяемый тип данных.
Свойства символов:
При создании символам можно дать имя.
Создаём символ id с описанием (именем) "id"Они гарантированно уникальны.
let id = Symbol("id");
let id1 = Symbol("id");
let id2 = Symbol("id");
alert(id1 == id2); // false
Не преобразуются автоматически в строки. let id = Symbol("id");
alert(id); // TypeError: Cannot convert a Symbol value to a string
Позволяют создавать «скрытые» свойства объектов, к которым нельзя обратиться из других частей программы и перезаписать их.let id = Symbol("id");
let user = {
name: "Вася",
age: 30,
[id]: 123 // просто "id: 123" не сработает
};
Игнорируются циклом for…infor (let key in user) alert(key); // name, age (свойства с ключом-символом нет среди перечисленных)
Инструменты для верстки Pixel Perfect
Pixel Perfect - это техника, при использовании которой вёрстка в точности совпадает с макетом.
Для её реализации отлично подходит расширение для браузера PerfectPixel.
В браузерах, где нет поддержки этого расширения — можно использовать скрипты, например X-Precise.
Сценарий работы:
1. Сохраняем макет в формат изображения .png или .jpg
2. В браузере открываем сверстанный по этому макету документ
3. При помощи плагина изображение макета накладывается на сверстанную страницу.
Pixel Perfect - это техника, при использовании которой вёрстка в точности совпадает с макетом.
Для её реализации отлично подходит расширение для браузера PerfectPixel.
В браузерах, где нет поддержки этого расширения — можно использовать скрипты, например X-Precise.
Сценарий работы:
1. Сохраняем макет в формат изображения .png или .jpg
2. В браузере открываем сверстанный по этому макету документ
3. При помощи плагина изображение макета накладывается на сверстанную страницу.
Наконец-то мы нашли этот канал!
Друзья, кто работает, учится или планирует начать заниматься программированием – welcome в Твой Программист.
🔥 Здесь есть всё, что нужно IT-специалисту: от статей до новостей, от обучения до юмора, от интерактива до полезных советов.
Автор собирает вокруг канала крутое коммьюнити, с которым познавать сферу будет ещё легче и интересней. Советуем подписаться 😌
Друзья, кто работает, учится или планирует начать заниматься программированием – welcome в Твой Программист.
🔥 Здесь есть всё, что нужно IT-специалисту: от статей до новостей, от обучения до юмора, от интерактива до полезных советов.
Автор собирает вокруг канала крутое коммьюнити, с которым познавать сферу будет ещё легче и интересней. Советуем подписаться 😌
Как отбросить десятичную часть числа 10.2?
Anonymous Quiz
46%
parseFloat(10.2);
30%
(10.2).toInt();
6%
+10.2;
18%
~~10.2;
This media is not supported in your browser
VIEW IN TELEGRAM
JS Слайдер
Слайдер реализован на нативном JS.
Количество показываемых слайдов можно изменить в переменной slidesToShow.
Количество пролистываемых слайдов изменяется в переменной slidesToScroll.
Пролистывание осуществляется с помощью двух кнопок, которые деактивируются, при подходе к границе слайдера.
Слайдер реализован на нативном JS.
Количество показываемых слайдов можно изменить в переменной slidesToShow.
Количество пролистываемых слайдов изменяется в переменной slidesToScroll.
Пролистывание осуществляется с помощью двух кнопок, которые деактивируются, при подходе к границе слайдера.
CSS ::before и ::after
before и after - псевдоэлементы
С их помощью можно стилизовать элементы, не размещенные в HTML
before размещается до контента родительского элемента, а after после.
Для добавление контента внутрь псевдоэлементов нужно воспользоваться CSS-свойством content.
Добавить можно:
1. Строку
При добавлении пустого значения можно задать псевдоэлементу ширину и высоту и стилизовать его как отдельный блок.
Before и after отлично подходят для стилизации маркеров списков, а также для добавления разного рода разделителей.
before и after - псевдоэлементы
С их помощью можно стилизовать элементы, не размещенные в HTML
before размещается до контента родительского элемента, а after после.
Для добавление контента внутрь псевдоэлементов нужно воспользоваться CSS-свойством content.
Добавить можно:
1. Строку
content: "a string"
2. Картинку content: url(/path/to/image.jpg)
3. Ничего content: “” При добавлении пустого значения можно задать псевдоэлементу ширину и высоту и стилизовать его как отдельный блок.
Before и after отлично подходят для стилизации маркеров списков, а также для добавления разного рода разделителей.
Какого цвета будет текст?
<p class="blue-text" id="green-text" style="color: red;">Hello world</p>
<p class="blue-text" id="green-text" style="color: red;">Hello world</p>
Anonymous Quiz
4%
Синий
5%
Желтый
31%
Зеленый
59%
Красный
CSS Анимация
Анимация — это набор ключевых кадров, хранящихся в CSS:
Способ подключения анимации к элементу:
Анимация — это набор ключевых кадров, хранящихся в CSS:
@keyframes a1 {
0% {
width: 50px;
}
100% {
width: 150px;
}
}
В фигурных скобках содержится список кадров. Мы используем начальный кадр 0% и конечный 100%.Способ подключения анимации к элементу:
element {
//имя animation-name: a1;
// длительность animation-duration: 2s;
// задержка перед началом animation-delay: 5s;
// число повторов animation-iteration-count: 3;
//скорость воспроизведения animation-timing-function: steps(7, end);
}
К одному элементу можно применить несколько анимаций:element {
animation-name: a1, a2;
animation-duration: 2s, 4s;
}This media is not supported in your browser
VIEW IN TELEGRAM
Аналоговые часы на JavaScript
Автор получает текущее время на устройстве, затем исходя из этого поворачивает стрелки часов, на определенный градус. Обновление происходит каждую секунду.
Автор получает текущее время на устройстве, затем исходя из этого поворачивает стрелки часов, на определенный градус. Обновление происходит каждую секунду.
Какой CSS-код необходимо задать, чтобы цвет посещённых и непосещённых ссылок был одним и тем же?
Anonymous Quiz
8%
a:link, a:active {color: yellow;}
9%
a:link {color: yellow;}
31%
a:active, a:visited {color: yellow;}
52%
a:link, a:visited {color: yellow;}
JS call, apply, bind
В JavaScript функции имеют свои методы такие как apply(), call() и bind().
Их суть - заставить функцию использовать контекст объекта.
super junior developer earns 1200 dollars
Методы apply и call отличаются тем, что метод apply принимает аргументы в виде массива, а не списка.
Сначала передаем контекст выполнения:
В JavaScript функции имеют свои методы такие как apply(), call() и bind().
Их суть - заставить функцию использовать контекст объекта.
function promote(position, salary) {
this.salary = salary
this.position = position
return this.position + ' earns ' + this.salary + ' dollars'
}
Метод call() позволяет нам легко выставлять какой именно объект будет this в момент вызова функции. const junior = {
name: 'Fritz',
position: 'junior developer',
salary: 1000
}
const res = promote.call(junior, 'super junior developer', 1200)
Результатом будет:super junior developer earns 1200 dollars
Методы apply и call отличаются тем, что метод apply принимает аргументы в виде массива, а не списка.
const res = promote.apply(junior, [ 'super junior developer', 1200 ])Метод bind позволяет выполнить отложенный вызов функции.
Сначала передаем контекст выполнения:
const bounded = promote.bind(junior)Потом вызываем:
const res = bounded('super junior developer', 1200)Всё просто:
1) Более 3000 книг для программистов
2) Бот для поиска книг по каналу
3) Бот для поиска книг по Library Genesis
⬇ Тык
@bzd_channel
1) Более 3000 книг для программистов
2) Бот для поиска книг по каналу
3) Бот для поиска книг по Library Genesis
⬇ Тык
@bzd_channel