JS | Деструктуризация объектов
Деструктурирующее присваивание – это специальный синтаксис, который позволяет нам «распаковать» массивы или объекты в кучу переменных, так как иногда они более удобны.
Деструктуризация массива
Деструктурирующее присваивание – это специальный синтаксис, который позволяет нам «распаковать» массивы или объекты в кучу переменных, так как иногда они более удобны.
Деструктуризация массива
let arr = ["Ilya", "Kantor"]Деструктуризация объекта
// деструктурирующее присваивание
// записывает firstName=arr[0], surname=arr[1]
let [firstName, surname] = arr;
console.log(firstName); // Ilya
console.log(surname); // Kantor
let options = {
noscript: "Menu",
width: 100,
height: 200
};
let {noscript, width, height} = options;
console.log(noscript); // Menu
console.log(width); // 100
console.log(height); // 200
Более сложные примеры разобраны в документации.CSS | Привет, Глассморфизм
Глассморфизм это эффект когда светлая или темная полупрозрачная поверхность размывает блоки под собой, правильное использование эффекта стекла поможет избежать тяжелых элементов в интерфейсе и его захламление.
Этого эффекта можно легко добиться с помощью css используя backdrop-filter.
Глассморфизм это эффект когда светлая или темная полупрозрачная поверхность размывает блоки под собой, правильное использование эффекта стекла поможет избежать тяжелых элементов в интерфейсе и его захламление.
Этого эффекта можно легко добиться с помощью css используя backdrop-filter.
HTML | Адаптивные изображения для всех
В современном вебе использовать неадаптивные изображения - моветон. Тег picture, атрибуты sizes и srcset у тега img позволяют гибко решать эту проблему. В статье на примерах наглядно объясняются принципы создания респонсивных изображений.
Если особой гибкости не требуется, то как минимум нужно указывать дополнительное изображение для ретины:
В современном вебе использовать неадаптивные изображения - моветон. Тег picture, атрибуты sizes и srcset у тега img позволяют гибко решать эту проблему. В статье на примерах наглядно объясняются принципы создания респонсивных изображений.
Если особой гибкости не требуется, то как минимум нужно указывать дополнительное изображение для ретины:
<src="/path/to/img.jpg" srcset="/path/to/img@2x.jpg 2x">
This media is not supported in your browser
VIEW IN TELEGRAM
JS | Встроенные связанные слайдеры
Слайдер, который можно перелистывать колесиком мыши довольно удобен, пока не возникает необходимость добавить в него еще один слайдер, в примере показа реализация встроенных слайдеров с использованием swiper.
Слайдер, который можно перелистывать колесиком мыши довольно удобен, пока не возникает необходимость добавить в него еще один слайдер, в примере показа реализация встроенных слайдеров с использованием swiper.
PHP | PHPOffice
PHPOffice - набор пакетов для работы с различными офисными документами.
PHPWord - для текстовых документов в форматах doc, docx, otf, rtf
PhpSpreadsheet - для электронных таблиц xls ,xlsx, ods
PHPPresentation - для презентаций pptx, odp
Данные библиотеки позволяют как читать, так и создавать файлы в указанным форматах.
PHPOffice - набор пакетов для работы с различными офисными документами.
PHPWord - для текстовых документов в форматах doc, docx, otf, rtf
PhpSpreadsheet - для электронных таблиц xls ,xlsx, ods
PHPPresentation - для презентаций pptx, odp
Данные библиотеки позволяют как читать, так и создавать файлы в указанным форматах.
CSS директивы
Синтаксис директивы
@supports и CSS.supports (JavaScript) помогут разработчикам определять справится ли браузер пользователя с CSS свойством или нет.Синтаксис директивы
@supports такой же, как и у @media запросов:@supports(prop:value) {
/* стили */
}
Простая проверка свойства@supports (display: flex) {
div { display: flex; }
}
Ключевое слово not@supports в паре со словом not осуществляет проверку на отсутствие поддержки какого-либо свойства:@supports not (display: flex) {
div { float: left; } /* задан альтернативный стиль */
}
Больше примеров использования и подробности в статье.Что выведется в консоли
Anonymous Quiz
19%
3, [1,2,3]
49%
3, [1,2]
8%
1, [1,2,3]
13%
1, [2,3]
11%
Type Error
This media is not supported in your browser
VIEW IN TELEGRAM
JS | Как узнать что блок виден на экране
Intersection Observer API позволяет веб-приложениям асинхронно следить за изменением пересечения элемента с его родителем или областью видимости документа viewport, узнать сколько процентов блока видно на экране (0 не виден, 1.0 - полностью виден), выполнять коллбэк при достижении определенных процентов видимости блока.
Intersection Observer API позволяет веб-приложениям асинхронно следить за изменением пересечения элемента с его родителем или областью видимости документа viewport, узнать сколько процентов блока видно на экране (0 не виден, 1.0 - полностью виден), выполнять коллбэк при достижении определенных процентов видимости блока.
CSS | Caniuse.com поможет с новыми технологиями
Caniuse.com не только может показать поддержку свойства в браузерами, но и подсказать вендорные префиксы, ссылки на полифиллы и известные проблемы.
Caniuse.com не только может показать поддержку свойства в браузерами, но и подсказать вендорные префиксы, ссылки на полифиллы и известные проблемы.
Чему будет равна ширина div?
Anonymous Quiz
4%
100vw
22%
Половине ширины экрана + 80 пикселей
70%
Половине высоты экрана + 80 пикселей
5%
0
PHP | Какая функция сортировки массива не сохраняет ключи?
Anonymous Quiz
17%
ksort()
33%
sort()
18%
natsort()
32%
asort()
JS | Структуры данных - стек и очередь
Стек хранит данные в последовательном порядке и удаляет последние добавленные данные.
Очередь также хранит данные в последовательном порядке, но удаляет самые старые элементы.
В статье рассказывается как в js реализовать эти структуры и показаны примеры применения.
Стек хранит данные в последовательном порядке и удаляет последние добавленные данные.
Очередь также хранит данные в последовательном порядке, но удаляет самые старые элементы.
В статье рассказывается как в js реализовать эти структуры и показаны примеры применения.
CSS | Как контролировать Z-индексы в большом приложении
При разрастании проекта растет сложность интерфейса и контролировать z-индексы становится довольно сложно.
- Люди часто выбирают произвольно большие значения z-индекса;
- Исправления ошибок z-index часто приводят к новым;
- Связь между значениями z-index трудно отследить.
Стивен Фрисон (Stiven Frison) предлагает изящное решение этой проблемы:
В этой системе каждый z-index имеет ровно такое значение, какое должно быть, и, поскольку оно выбирается динамически, вас не волнует, какое это значение на самом деле.
При разрастании проекта растет сложность интерфейса и контролировать z-индексы становится довольно сложно.
- Люди часто выбирают произвольно большие значения z-индекса;
- Исправления ошибок z-index часто приводят к новым;
- Связь между значениями z-index трудно отследить.
Стивен Фрисон (Stiven Frison) предлагает изящное решение этой проблемы:
const base = 0;Решение основано на CSS-in-JS, но оно может быль реализовано с помощью препроцессоров или CSS с использованием переменных.
const above = 1;
const below = -1;
export const backdrop = below + dropdown;
export const dropdown = below + button;
export const button = base;
В этой системе каждый z-index имеет ровно такое значение, какое должно быть, и, поскольку оно выбирается динамически, вас не волнует, какое это значение на самом деле.