fa
Feedback

فریب کلاهبرداران را نخورید! تل‌متریو این کانال‌ها را شناسایی و برچسب‌گذاری می‌کند 👉 برای مشاهده برچسب، اشتراک تهیه کنید

Вёрстка сайтов | HTML, CSS, JS

Вёрстка сайтов | HTML, CSS, JS

رفتن به کانال در Telegram

👋 Привет, друг! В этом канале я выкладываю структурированные, обучающие уроки и материалы по вёрстке сайтов и фронтенду. Присоединяйся и начинай учиться! Связь: @Tigran1963

نمایش بیشتر
4 473
مشترکین
-224 ساعت
-87 روز
-2730 روز
جذب مشترکین
نوامبر '26
نوامبر '26
+9
در 0 کانال‌ها
اکتبر '26
+43
در 2 کانال‌ها
Get PRO
سپتامبر '26
+73
در 10 کانال‌ها
Get PRO
اوت '26
+47
در 2 کانال‌ها
Get PRO
ژوئیه '26
+39
در 2 کانال‌ها
Get PRO
ژوئن '26
+81
در 5 کانال‌ها
Get PRO
مه '26
+75
در 2 کانال‌ها
Get PRO
آوریل '26
+93
در 7 کانال‌ها
Get PRO
مارس '26
+83
در 3 کانال‌ها
Get PRO
فوریه '26
+54
در 2 کانال‌ها
Get PRO
ژانویه '26
+85
در 3 کانال‌ها
Get PRO
دسامبر '25
+45
در 3 کانال‌ها
Get PRO
نوامبر '25
+72
در 5 کانال‌ها
Get PRO
اکتبر '25
+48
در 7 کانال‌ها
Get PRO
سپتامبر '25
+126
در 5 کانال‌ها
Get PRO
اوت '25
+74
در 8 کانال‌ها
Get PRO
ژوئیه '25
+75
در 7 کانال‌ها
Get PRO
ژوئن '25
+49
در 2 کانال‌ها
Get PRO
مه '25
+73
در 10 کانال‌ها
Get PRO
آوریل '25
+81
در 4 کانال‌ها
Get PRO
مارس '25
+177
در 8 کانال‌ها
Get PRO
فوریه '25
+176
در 10 کانال‌ها
Get PRO
ژانویه '25
+155
در 6 کانال‌ها
Get PRO
دسامبر '24
+91
در 9 کانال‌ها
Get PRO
نوامبر '24
+119
در 9 کانال‌ها
Get PRO
اکتبر '24
+224
در 8 کانال‌ها
Get PRO
سپتامبر '24
+222
در 10 کانال‌ها
Get PRO
اوت '24
+115
در 9 کانال‌ها
Get PRO
ژوئیه '24
+153
در 4 کانال‌ها
Get PRO
ژوئن '24
+98
در 3 کانال‌ها
Get PRO
مه '24
+115
در 5 کانال‌ها
Get PRO
آوریل '24
+126
در 4 کانال‌ها
Get PRO
مارس '24
+110
در 3 کانال‌ها
Get PRO
فوریه '24
+133
در 6 کانال‌ها
Get PRO
ژانویه '24
+243
در 3 کانال‌ها
Get PRO
دسامبر '23
+231
در 6 کانال‌ها
Get PRO
نوامبر '23
+165
در 4 کانال‌ها
Get PRO
اکتبر '23
+160
در 5 کانال‌ها
Get PRO
سپتامبر '23
+166
در 0 کانال‌ها
Get PRO
اوت '23
+221
در 0 کانال‌ها
Get PRO
ژوئیه '23
+274
در 0 کانال‌ها
Get PRO
ژوئن '23
+137
در 0 کانال‌ها
Get PRO
مه '23
+143
در 0 کانال‌ها
Get PRO
آوریل '23
+219
در 0 کانال‌ها
Get PRO
مارس '23
+251
در 0 کانال‌ها
Get PRO
فوریه '23
+415
در 0 کانال‌ها
Get PRO
ژانویه '23
+265
در 0 کانال‌ها
Get PRO
دسامبر '22
+193
در 0 کانال‌ها
Get PRO
نوامبر '22
+229
در 0 کانال‌ها
Get PRO
اکتبر '22
+681
در 0 کانال‌ها
Get PRO
سپتامبر '22
+216
در 0 کانال‌ها
Get PRO
اوت '22
+2 368
در 0 کانال‌ها
تاریخ
رشد مشترکین
اشارات
کانال‌ها
07 نوامبر+1
06 نوامبر+1
05 نوامبر0
04 نوامبر+2
03 نوامبر+2
02 نوامبر+3
01 نوامبر0
پست‌های کانال
Что не так с этими iPhone? С телефонами — ничего! Небольшие повреждения есть только на упаковке, поэтому новые оригинальные i
Что не так с этими iPhone? С телефонами — ничего! Небольшие повреждения есть только на упаковке, поэтому новые оригинальные iPhone можно приобрести по специальной цене. iPhone 17 Pro Max — от 35 000 ₽ iPhone 17 Air — от 29 000 ₽ iPhone 16 Pro — от 27 000 ₽ Все устройства новые и запечатанные. Количество ограничено. Посмотрите доступные модели и актуальные цены в нашем Telegram-канале! Получить предложение #реклама О рекламодателе

2
Макет для тренировки (мойфрахт) Перейти к макету 🧑‍💻 #практика | #макет
Макет для тренировки (мойфрахт) Перейти к макету 🧑‍💻 #практика | #макет
156
3
Простой паралакс при скролле Посмотреть на codepen👨‍💻 #практика
Простой паралакс при скролле Посмотреть на codepen👨‍💻 #практика
215
4
ResizeObserver Читать 👨‍💻 #полезности
246
5
Почему fetch() не считает 404 ошибкой? Представим, что мы отправляем запрос на сервер: try { const response = await fetch("/api/users"); const users = await response.json(); console.log(users); } catch (error) { console.error("Ошибка запроса:", error); } Кажется, всё правильно: отправили запрос, получили данные, обработали ошибку. Но что произойдёт, если сервер вернёт 404 или 500? Ничего. `catch` не выполнится. Дело в том, что fetch() отклоняет Promise не при любом неуспешном HTTP-статусе, а при сетевых ошибках, прерывании запроса и некоторых других сбоях. Ответы 404, 403 и 500 считаются успешно полученными HTTP-ответами. Как правильно обрабатывать ошибки? Для этого у объекта Response есть свойство ok: try { const response = await fetch("/api/users"); if (!response.ok) { throw new Error(`HTTP ${response.status}`); } const users = await response.json(); console.log(users); } catch (error) { console.error(error); } response.ok возвращает true, если HTTP-статус находится в диапазоне от 200 до 299. А ещё у fetch() нет таймаута по умолчанию Если сервер долго не отвечает, запрос может ждать гораздо дольше, чем хотелось бы. Можно использовать AbortSignal.timeout(): const response = await fetch("/api/users", { signal: AbortSignal.timeout(5000), }); Теперь запрос будет автоматически прерван примерно через 5 секунд, если не завершится раньше. И ещё один нюанс fetch() не отправляет cookies при кросс-доменных запросах по умолчанию. Если сервер использует авторизацию через cookies, может понадобиться: fetch("https://api.example.com/users", { credentials: "include", }); При этом сервер должен разрешать запросы с учётными данными через CORS, а сами cookies должны соответствовать ограничениям браузера. Итог fetch() кажется простым API, но у него есть особенности, которые важно учитывать: - HTTP-ошибки не вызывают автоматический reject. - Таймаут нужно задавать самостоятельно. - Передача cookies зависит от credentials, CORS и настроек самих cookies. Именно из таких мелочей складывается надёжная работа с API на фронтенде.
253
6
Почему JavaScript Date такой странный? Казалось бы, что может быть проще работы с датами? Но в JavaScript даже здесь есть свои подводные камни. 1. Месяцы начинаются с нуля new Date(2026, 0, 1) // 1 января new Date(2026, 11, 1) // 1 декабря Да, январь это 0, а декабрь это 11. При этом дни месяца начинаются с 1. 2. Несуществующие даты автоматически исправляются new Date(2026, 1, 30) // 2 марта 2026 В феврале 2026 года всего 28 дней, но вместо ошибки JavaScript просто переносит лишние дни на следующий месяц. И это работает в обратную сторону: new Date(2026, 2, 0) // 28 февраля 2026 Нулевой день марта превращается в последний день февраля. 3. Одинаковые на вид даты могут означать разное new Date("2026-01-01") new Date("2026-01-01T00:00:00") Первая строка интерпретируется как полночь по UTC, а вторая как полночь по локальному времени. Из-за этого результат может отличаться в зависимости от часового пояса пользователя. 4. Сравнение дат работает не совсем очевидно const a = new Date("2026-01-01"); const b = new Date("2026-01-01"); console.log(a === b); // false console.log(a.getTime() === b.getTime()); // true Date является объектом, поэтому === сравнивает ссылки, а не значения дат. 5. Date хранит не дату Внутри объект Date хранит количество миллисекунд, прошедших с 1 января 1970 года, 00:00:00 UTC. new Date(0).toISOString() // "1970-01-01T00:00:00.000Z" Часовой пояс не хранится внутри объекта. Он учитывается при отображении даты локальными методами. Итог Date выглядит простым API, но его поведение легко приводит к ошибкам, особенно при работе с часовыми поясами, пользовательским вводом и сравнением дат. Поэтому при работе с датами важно понимать, что именно хранится, как дата создаётся и в каком часовом поясе интерпретируется.
255
7
Ловушки Python, SQL и Git с кодом и разбором Почему round(2.5) в Python даёт 2, а cart=[] в аргументе функции помнит прошлые
Ловушки Python, SQL и Git с кодом и разбором Почему round(2.5) в Python даёт 2, а cart=[] в аргументе функции помнит прошлые вызовы? И почему один NULL в подзапросе превращает NOT IN в пустой результат? В канале Koddo — короткие разборы таких ловушек в Python, SQL, JavaScript, Linux и Git. В каждом посте код с выводом, объяснение и ссылка на полный разбор в справочнике koddo.ru. Подписывайся, чтобы встречать их в ленте, а не на собеседовании. Подписаться #реклама 16+ О рекламодателе
1
8
Зарабатывайте на установках Яндекс Браузера Партнёрская программа для сервисных центров, магазинов компьютерной техники, сайт
Зарабатывайте на установках Яндекс Браузера Партнёрская программа для сервисных центров, магазинов компьютерной техники, сайтов для скачивания файлов и авторов статей. Вы можете предлагать его своим клиентам и аудитории — и зарабатывать на новых установках. Выплаты до 500₽ за каждую установку Яндекс Браузера. Подать заявку #реклама 0+ partner.browser.yandex.ru О рекламодателе
29
9
Яндекс Музыка до 360 дней бесплатно Яндекс Музыка для вас и 3-х ваших близких. Кинопоиск и Яндекс Книги тоже в мультиподписке
Яндекс Музыка до 360 дней бесплатно Яндекс Музыка для вас и 3-х ваших близких. Кинопоиск и Яндекс Книги тоже в мультиподписке Плюс. Попробуйте бесплатно❤️ Слушать #реклама 18+ music.yandex.ru О рекламодателе
149
10
Макет для тренировки (e2b) Перейти к макету 🧑‍💻 #практика | #макет
Макет для тренировки (e2b) Перейти к макету 🧑‍💻 #практика | #макет
362
11
Пятница, 17:30. Макет почти готов Но один сценарий всё ещё вызывает вопросы. Обсудить сейчас или вернуться в понедельник? Реш
Пятница, 17:30. Макет почти готов Но один сценарий всё ещё вызывает вопросы. Обсудить сейчас или вернуться в понедельник? Решайте вместе с командой hh.ru в «Охэхэнных новостях». Подписаться #реклама О рекламодателе
217
12
Изучаем Классы в JavaScript: Основы и Применение Читать 👨‍💻 #js | #теория
425
13
Монолит vs микросервисы: битва за ваши нервы 💻 Монолит или микросервисы? Кажется, что ответ очевиден, но почему-то одни прое
Монолит vs микросервисы: битва за ваши нервы 💻 Монолит или микросервисы? Кажется, что ответ очевиден, но почему-то одни проекты летают, а другие тонут в хаосе? Присоединяйтесь к открытому уроку Сергея Прощаева и получите пошаговое руководство по выбору архитектуры. 📅 9 ноября в 20:00. Разберём: - Как не попасть в ловушку «модных» микросервисов. - Признаки, что пора выходить из монолита. - Архитектурные паттерны перехода: Strangler Fig, BFF, Self-contained systems. - Организационные и технические риски — что пойдёт не так. - Роль DevOps, CI/CD и мониторинга. Вы научитесь оценивать реальные риски и стоимость микросервисов, внедрять изменения без сбоев и хаоса и принимать взвешенные решения, сохраняя технический контроль и производительность команды. ✅ Запишитесь сейчас! Узнать больше #реклама 16+ otus.ru О рекламодателе
221
14
Основы событий мыши Читать 👨‍💻 #js | #теория
Основы событий мыши Читать 👨‍💻 #js | #теория
411
15
Grid Attack - игра для изучения css grid Перейти на сайт 👨‍💻 #полезности
Grid Attack - игра для изучения css grid Перейти на сайт 👨‍💻 #полезности
428
16
Хотите разобраться, как создаются Telegram-боты? Telegram-бот кажется простым для пользователя, но как он получает сообщение
Хотите разобраться, как создаются Telegram-боты? Telegram-бот кажется простым для пользователя, но как он получает сообщение и решает, что ответить? На открытом уроке разберём этот процесс на практике. Преподаватель в режиме лайвкодинга создаст бота на Python с библиотекой aiogram — от первого запуска до рабочего диалога с кнопками. Вы узнаете, как получить токен, обрабатывать команды и сообщения, добавлять кнопки и ответы на действия пользователя. В конце проверите работу готового бота прямо в Telegram. Урок подойдёт начинающим Python-разработчикам. 10 ноября в 20:00 МСК. Зарегистрироваться #реклама 16+ otus.ru О рекламодателе
222
17
Как использовать css @property Читать 👨‍💻 #css | #полезности
433
18
🎁 Розыгрыш 3 плагинов для WordPress Разработчик плагинов APEX SHOP дарит три ключа — каждый победитель выбирает любой плагин: ⚡️ Apex Optimizer — ускорение, SEO и защита сайта 🎯 Custom Popup — попапы, которые не бесят 🤖 DeepPress AI — SEO-статьи с ИИ Лицензия на 1 год с обновлениями и поддержкой. Условия простые: подписаться и написать в комментариях, какой у вас сайт на WP. Всем участникам — скидка 20%. 👉 Участвовать: https://t.me/+zvQ3EcnBVhtiMjcx Итоги — 1 ноября в 12:00 МСК
254
19
Подборка лучших постов за прошлую неделю Лучшие статьи @free_html_lessons: 1. Атрибут inert 2. AVIF или WebP? 3. Как сделать
Подборка лучших постов за прошлую неделю Лучшие статьи @free_html_lessons: 1. Атрибут inert 2. AVIF или WebP? 3. Как сделать стилизацию скролла? Лучшие фронтенд вакансии @job_webdev: 1. Frontend-разработчик (Vue 3 / Nuxt), Middle в IT-компанию 2. Frontend developer for a digital platform 3. frontend-разработчик CRM-систем Лучшие дизайн вакансии @job_webdesign: 1. Web-дизайнер 2. UX/UI-дизайнер цифровых продуктов 3. Дизайнер интерфейсов UI/UX для мобильных проектов #лучшеезанеделю
414
20
JS Задача: Редактор разметки текстов Описание: Чтобы упростить жизнь контент-менеджеру сайта, сделали простую CMS, в которой
JS Задача: Редактор разметки текстов Описание: Чтобы упростить жизнь контент-менеджеру сайта, сделали простую CMS, в которой тексты статей набираются в кастомной разметке. Набор операторов ограничен: • Заголовки • Неупорядоченные списки одного уровня вложенности • Абзацы — Ссылки Необходимо написать тело преобразующей функции module.exports = (str) => { // Ваш код здесь }; Формат ввода = head text ((https://ya.ru link)) text. * item * item Формат вывода <h1>head</h1><p>text <a href="https://ya.ru">link</a> text.</p><ul><li>item</li><li>item</li></ul> Примечание Незначимые пробелы и переносы строк на выходе не имеют значения, т.к. в тестах html приводится к одной строке, а лишние пробелы удаляются; Одинарные кавычки в тесте приводятся к двойным; Формат заголовка (Начало строки, знак равно, пробел, текст заголовка, конец строки); Формат абзаца (Начало строки, текст абзаца, конец строки); Формат списка (Пункт списка, повторенный один и более раз: Начало строки, звёздочка, пробел, текст, конец строки. До и после списка пустые строки); Формат ссылки (Две открывающие скобки, адрес ссылки, первый пробел, текст ссылки с любым кол-вом пробелов, две закрывающие скобки) Задача из coderun.yandex.ru #домашка
384