Получи случайную криптовалюту за регистрацию!

Будни разработчика

Логотип телеграм канала @htmlshit — Будни разработчика Б
Логотип телеграм канала @htmlshit — Будни разработчика
Адрес канала: @htmlshit
Категории: Дизайн , Технологии
Язык: Русский
Количество подписчиков: 11.63K
Описание канала:

Блог Senior JS-разработчика из Хельсинки
Автор: @bekharsky
По рекламе: https://telega.in/channels/htmlshit/card?r=GLOiHluU или https://t.me/it_adv
Чат: https://t.me/htmlshitchat

Рейтинги и Отзывы

3.00

3 отзыва

Оценить канал htmlshit и оставить отзыв — могут только зарегестрированные пользователи. Все отзывы проходят модерацию.

5 звезд

0

4 звезд

0

3 звезд

3

2 звезд

0

1 звезд

0


Последние сообщения 104

2021-05-03 11:08:17
#codepen дня

Знакомая и популярная гифка, не правда ли?

Пришло время развеять миф! Мне кажется, вы достаточно готовы к двум практически одинаковым примерам на разных техниках.

Раз, на свежих Container Queries, если ваш браузер их поддерживает: https://codepen.io/jh3y/pen/LYxKjKX

Вот только есть нюанс! Как только их завезли в Chrome Canary, появился и полифилл. Именно этот полифилл и используется в примере, так что работает практически везде.

Два, на CSS Custom Properties: https://codepen.io/jh3y/pen/KKajeyy

В общем, на современном CSS сложнее неправильно сложить жалюзи, чем правильно. С чем я всех нас и поздравляю.

@htmlshit
#css #containerqueries #customproperties #polyfill
1.1K viewsedited  08:08
Открыть/Комментировать
2021-04-30 16:19:02
#библиотека дня

Раскладка Masonry (буквально — каменная кладка), когда элементы уложены максимально плотно, до сих пор не потеряла своей популярности. Её отличие от классических CSS-колонок – в порядке следования элементов. Если колонки это

1 4 7
2 5 8
3 6

то в Masonry- или Pinterest-раскладке порядок стремится к классической сетке:

1 2 3
4 5 6
7 8

Но в сетке все ячейки одного размера, а в кладке – нет (смотрите иллюстрацию). Была даже попытка внедрить это в CSS Grids, в одной из версий Firefox.

Долгое время де-факто стандартом библиотеки для Masonry была, собственно, Masonry.js. Но она достаточно тяжёлая и её методы немного устарели. Сейчас же есть много альтернатив.

Одна из новых и сравнительно легковесных — это FlexMasonry. Весит всего 6 килобайт, подключается очень просто и с задачей справляется отлично. Ну и использует флексы, как нетрудно догадаться из названия

@htmlshit
#css #js #flex #masonry
1.4K viewsedited  13:19
Открыть/Комментировать
2021-04-29 10:01:18
#codepen дня

Восхищаться красивыми примерами можно бесконечно, но полезные – гораздо… практичнее.

Вот недавно прошла очередная презентация Apple Keynote. Что сделает хороший разработчик? Правильно, воссоздаст анимацию её логотипа: https://codepen.io/Mamboleoo/pen/ZELqMOg

Что же сделает отличный разработчик?

А он не просто воссоздаст, но и покажет, как конкретно. Разложит на шаги и снабдит код подробными комментариями: https://codepen.io/Mamboleoo/pen/qBRQXPN

Кому не хватало понимания, как конкретно пишутся анимации с использованием GSAP – самое время пойти и попробовать.

@htmlshit
#svg #canvas #gsap
1.6K viewsedited  07:01
Открыть/Комментировать
2021-04-28 10:00:47
#библиотека дня

Хочется подобрать палитру для дизайна или логотипа? А может, создать тему на основе загруженной пользователем фотографии?

Для этого нужно выделить из изображения доминантные цвета.

А с этим поможет проект Color Thief: https://lokeshdhakar.com/projects/color-thief/

Работает в браузерах и в Node.js, лицензия допускает коммерческое применение.

Использование очень простое, документация снабжена исчерпывающими примерами.

#js #color #palette
2.3K views07:00
Открыть/Комментировать
2021-04-27 15:00:46
#инструмент дня

Уметь пользоваться отладчиком должен каждый разработчик.

Особенно когда инструменты становятся всё дружелюбнее, да ещё и встроены в браузер.

Итак, как отследить, какой код вызвал изменение атрибута (или поддерева, или вообще удаления) элемента?

Находим элемент в инспекторе, правой кнопкой – «Break on» «attribute modifications» и... и в общем, всё, смотрите видео.

Теперь исполнение остановится по условию и вы сможете посмотреть код, изменивший ваш атрибут, прямо во вкладке «Sources». Там же можно добавить больше точек останова или просто продолжить.

#js #debug #devtools
2.2K views12:00
Открыть/Комментировать
2021-04-26 19:46:08 Попробовал немного причесать код из заметки выше и возник вопрос.

Стоит ли в подобном коде обозначать просто концепт, или если делать – то уже практически готовую к продакшену вещь?

Приглашаю к обсуждению.
2.2K viewsedited  16:46
Открыть/Комментировать
2021-04-26 15:16:20 #заметка дня

Во времена расцвета jQuery реализация аккордеона — набора раскрывающихся блоков — укладывалась в метод slideToggle. Одна-две строчки – и готово.

Сейчас же jQuery не в почёте, а CSS Transitions не дают нам возможности анимировать высоту от 0 до auto. Браузеру не известна высота блока до того, как блок будет отображён. Так какой же выход из ситуации?

Чтобы это понять, надо сначала осознать, как когда-то с этим справлялась jQuery.

А она всего лишь производила кучу вычислений прямо перед вашими глазами: показывала блок, рассчитывала высоту контента, сохраняла, ставила в ноль и изменяла значение высоты блока используя заданную функцию плавности.

Комбинируя это знание с тем фактом, что CSS не может анимировать высоту до auto, в голову сразу приходит несколько решений.

1. Установка transition на max-height, вместо height. От 0 до абсурдно большого значения. Плюсы — можно вообще JS не писать. Минусы — если сильно ошибся с предполагаемой высотой, функция плавности сойдёт с ума.

2. Считать scrollHeight и анимировать до него. Собственно, фактически то же самое, что делал jQuery. Плюсы: полный контроль над происходящим Минусы: без JS работать не будет (в самом популярном случае вы просто оставляете аккордеон раскрытым).

3. Ну мы же в 2021 году, есть пользовательские свойства! Устанавливаем значение свойства равным высоте scrollHeight, как во втором случае, и дело в шляпе: https://codepen.io/alinaki/pen/OJWqXGV Плюсы: минимальный объём кода, минусы — поддержка пользовательских свойств в вашем таргете может отсутствовать. Зато если поддержки нет или JS выключен — анимации просто не будет.

А чтобы всё это было доступно с клавиатуры — не забываем применить технику «визуального скрытия (visually hidden)» на чекбоксы и установить лейблу стили для фокуса.

#css #customproperties #accordion
2.4K viewsedited  12:16
Открыть/Комментировать
2021-04-25 10:30:00
#баг дня

Достаточно странная ситуация, но сочетание свежего правила aspect-ratio и display: grid ломает позиционирование элементов через align-content или place-content. Вот два разных примера:

align-content:
https://codepen.io/alinaki/pen/dyNaRgr
place-content:
https://codepen.io/thebabydino/pen/rNjogOa

Safari и Firefox ведут себя корректно. Если убрать padding, то и Chrome начинает позиционировать правильно, но пока что модель сломана.

Ссылка на трекер: https://bugs.chromium.org/p/chromium/issues/detail?id=1166875

Будьте осторожны.

#grid #aligncontent #placecontent
2.4K views07:30
Открыть/Комментировать
2021-04-23 18:07:45 Ветром принесло новость, что у этого проекта (https://www.htmhell.dev/) появился уродливый брат-близнец: https://csshell.dev/

Отдельного поста не очень пока достоин, так что спешите дополнять. To Hell with bad CSS!

Как всегда, постарайтесь не найти там себя.
2.5K viewsedited  15:07
Открыть/Комментировать
2021-04-23 11:00:11
#фишка дня

Вам уже должен быть хорошо знаком input type=“number”. Кто-то наверняка даже пытался стилизовать раздражающие стрелочки.

Но мало кто знает, что это (и ещё одно, угадайте, какое) поле ввода предоставляет свои псевдоклассы: :in-range и :out-of-range. Уже понятно, что они делают: если вы установили атрибуты min и max, вышеуказанные псевдоклассы позволят воспользоваться этим знанием в CSS.

input:out-of-range ~ span {
color: red;
}

И естественно, подъехал (вот буквально) шикарный CodePen на эту тему:
http://codepen.io/jh3y/pen/MWWowEb

@htmlshit

#css #input #number #range
2.6K viewsedited  08:00
Открыть/Комментировать