\n\n🚩Плюсы\n\n➕Быстрая работа после загрузки\nПриложение становится очень интерактивным после инициализации.\n➕Меньшая нагрузка на сервер\nОсновная работа выполняется на клиентской стороне.\n➕Гибкость и модульность\nЛегко добавлять сложные интерактивные компоненты.\n\n🚩Минусы\n\n➖Медленная первая загрузка (Time to First Byte, TTFB)\nПользователь видит пустую страницу, пока загружается JavaScript и данные.\n➕Проблемы с SEO\nПоисковым системам сложнее индексировать страницы, так как контент рендерится только в браузере.\n➖Требования к устройствам\nБольше ресурсов требуется на стороне клиента.\n\n🚩SSG (Static Site Generation)\n\nСайт полностью генерируется на этапе сборки (build time) и сервер отдает готовые HTML-страницы. Это популярный подход в JAMstack-приложениях (JavaScript, APIs, Markup). HTML генерируется один раз (обычно через фреймворк вроде Next.js, Gatsby, Nuxt.js) во время сборки. Сайт раздается пользователям как готовый статический контент.\nnpm run build\n\n🚩Плюсы и минусы\n\n➕Молниеносная загрузка\nHTML статичен и отдается сервером без обработки.\n➕SEO-дружелюбность\nПоисковые системы могут легко индексировать готовый HTML.\n➕Уменьшение нагрузки на сервер\nВсе вычисления выполняются заранее (во время сборки).\n➖Ограничения при частых обновлениях контента\nДля обновления нужно заново пересобирать сайт, что может занимать много времени.\n➖Не подходит для динамических данных\nЕсли страница сильно зависит от данных пользователя или часто меняется, SSG становится менее удобным.\n\n🚩ISR (Incremental Static Regeneration)\n\nЭто гибрид между SSG и SSR. Вы создаете статический контент во время сборки, но некоторые страницы могут обновляться динамически при запросе, а сервер сохраняет их для следующих пользователей. Фреймворк (например, Next.js) генерирует страницы на этапе сборки, но для определенных страниц вы можете указать интервал обновления (revalidate). После этого сервер пересоберет страницу и кэширует ее.\nexport async function getStaticProps() {\n return {\n props: {\n data: fetchData(),\n },\n revalidate: 60, // Обновлять страницу каждые 60 секунд\n };\n}\n\n🚩Плюсы и минусы\n\n➕Лучшая производительность\nСтраницы отдаются как статические, но обновляются при необходимости.\n➕Гибкость\nУдобно для контента, который редко обновляется.\n➕SEO\nПоисковики видят статические страницы.\n➖Сложнее настроить\nНужно управлять кэшированием и интервалами обновления.\n➖Не подходит для полностью динамических страниц\nЕсли обновления контента слишком частые, ISR может не подойти.\n\n🚩DPR (Dynamic Rendering / Hybrid Rendering)\n\nЭто подход, при котором разные версии страницы рендерятся для разных пользователей. Например, для пользователей с обычными браузерами вы используете CSR, а для поисковых ботов — SSR. Запросы от поисковых ботов обрабатываются сервером, который генерирует готовый HTML. Запросы от обычных пользователей обрабатываются через CSR. Этот подход используется с инструментами, такими как Prerender.io или встроенными решениями фреймворков.\n\n🚩Плюсы и минусы\n\n➕Оптимально для SEO\nБоты получают готовый HTML.\n➕Гибкость\nПользователи получают интерактивные страницы через CSR.\n➖Усложнение архитектуры\nНужно отслеживать запросы и разделять их.\n➖Задержки для ботов\nГенерация страницы на сервере может занять время.\n\nСтавь 👍 и забирай 📚 Базу знаний","datePublished":"2025-12-30T09:05:31Z","dateModified":"2025-12-30T09:05:31Z","author":{"@type":"Organization","name":"Frontend | Вопросы собесов","url":"https://telemetr.io/ch/channels/1917151177-easy_javascript_ru","image":"https://img.tlmtr.io/c/25KaBb/5431453649143450783?ty=x"},"publisher":{"@type":"Organization","name":"Frontend | Вопросы собесов","url":"https://telemetr.io/ch/channels/1917151177-easy_javascript_ru","image":"https://img.tlmtr.io/c/25KaBb/5431453649143450783?ty=x"},"commentCount":0,"interactionStatistic":[{"@type":"InteractionCounter","interactionType":"https://schema.org/ViewAction","userInteractionCount":1978},{"@type":"InteractionCounter","interactionType":"https://schema.org/LikeAction","userInteractionCount":6},{"@type":"InteractionCounter","interactionType":"https://schema.org/ShareAction","userInteractionCount":34}]}},{"@type":"ListItem","position":5,"item":{"@type":"SocialMediaPosting","@id":"https://telemetr.io/ch/channels/1917151177-easy_javascript_ru/posts/2276","url":"https://telemetr.io/ch/channels/1917151177-easy_javascript_ru/posts/2276","mainEntityOfPage":"https://telemetr.io/ch/channels/1917151177-easy_javascript_ru/posts/2276","headline":"🤔 Что известно про сложность алгоритмов? Сложность алгоритма описывает, насколько быстро растёт время или пам…","articleBody":"🤔 Что известно про сложность алгоритмов?\n\nСложность алгоритма описывает, насколько быстро растёт время или память, необходимая для выполнения задачи при увеличении объёма данных. Обозначается как Big O:\n- O(1) — константная;\n- O(log n) — логарифмическая;\n- O(n) — линейная;\n- O(n²) — квадратичная и т.д.\nИспользуется для анализа эффективности кода и оптимизации.\n\nСтавь 👍 если знал ответ, 🔥 если нет\nЗабирай 📚 Базу знаний","datePublished":"2025-12-29T16:10:31Z","dateModified":"2025-12-29T16:10:31Z","author":{"@type":"Organization","name":"Frontend | Вопросы собесов","url":"https://telemetr.io/ch/channels/1917151177-easy_javascript_ru","image":"https://img.tlmtr.io/c/25KaBb/5431453649143450783?ty=x"},"publisher":{"@type":"Organization","name":"Frontend | Вопросы собесов","url":"https://telemetr.io/ch/channels/1917151177-easy_javascript_ru","image":"https://img.tlmtr.io/c/25KaBb/5431453649143450783?ty=x"},"commentCount":0,"interactionStatistic":[{"@type":"InteractionCounter","interactionType":"https://schema.org/ViewAction","userInteractionCount":1971},{"@type":"InteractionCounter","interactionType":"https://schema.org/LikeAction","userInteractionCount":15},{"@type":"InteractionCounter","interactionType":"https://schema.org/ShareAction","userInteractionCount":19}]}},{"@type":"ListItem","position":6,"item":{"@type":"SocialMediaPosting","@id":"https://telemetr.io/ch/channels/1917151177-easy_javascript_ru/posts/2275","url":"https://telemetr.io/ch/channels/1917151177-easy_javascript_ru/posts/2275","mainEntityOfPage":"https://telemetr.io/ch/channels/1917151177-easy_javascript_ru/posts/2275","headline":"📺 База 1000+ реальных собеседований На программиста, тестировщика, аналитика, проджекта и другие IT профы. Ес…","articleBody":"📺 База 1000+ реальных собеседований\n\nНа программиста, тестировщика, аналитика, проджекта и другие IT профы. \n\nЕсть собесы от ведущих компаний: Сбер, Яндекс, ВТБ, Тинькофф, Озон, Wildberries и т.д.\n\n🎯 Переходи по ссылке и присоединяйся к базе, чтобы прокачать свои шансы на успешное трудоустройство!","datePublished":"2025-12-29T11:10:18Z","dateModified":"2025-12-31T11:10:11Z","author":{"@type":"Organization","name":"Frontend | Вопросы собесов","url":"https://telemetr.io/ch/channels/1917151177-easy_javascript_ru","image":"https://img.tlmtr.io/c/25KaBb/5431453649143450783?ty=x"},"publisher":{"@type":"Organization","name":"Frontend | Вопросы собесов","url":"https://telemetr.io/ch/channels/1917151177-easy_javascript_ru","image":"https://img.tlmtr.io/c/25KaBb/5431453649143450783?ty=x"},"commentCount":0,"interactionStatistic":[{"@type":"InteractionCounter","interactionType":"https://schema.org/ViewAction","userInteractionCount":1321},{"@type":"InteractionCounter","interactionType":"https://schema.org/ShareAction","userInteractionCount":1}]}},{"@type":"ListItem","position":7,"item":{"@type":"SocialMediaPosting","@id":"https://telemetr.io/ch/channels/1917151177-easy_javascript_ru/posts/2274","url":"https://telemetr.io/ch/channels/1917151177-easy_javascript_ru/posts/2274","mainEntityOfPage":"https://telemetr.io/ch/channels/1917151177-easy_javascript_ru/posts/2274","headline":"🤔 Что происходит в момент запроса в браузере? Когда пользователь вводит URL в адресную строку браузера и нажи…","articleBody":"🤔 Что происходит в момент запроса в браузере?\n\nКогда пользователь вводит URL в адресную строку браузера и нажимает Enter, происходит ряд шагов для получения и отображения запрашиваемой веб-страницы. Этот процесс включает взаимодействие различных компонентов сети и веб-технологий. \n\n🟠Ввод URL и начало запроса\nПользователь вводит URL в адресную строку браузера.\nБраузер проверяет кэш браузера для определения, есть ли сохраненная копия запрашиваемого ресурса. Если ресурс найден в кэше и он актуален, страница загружается из кэша, минуя сетевые запросы.\n\n🟠DNS-разрешение\nЕсли ресурс не найден в кэше, браузер выполняет запрос к DNS-серверу для преобразования доменного имени (например, www.example.com) в IP-адрес сервера.\n\n🟠Установление TCP-соединения\nПосле получения IP-адреса браузер устанавливает TCP-соединение с сервером. Этот процесс включает в себя трехэтапное рукопожатие:\nБраузер отправляет SYN-пакет серверу.\nСервер отвечает SYN-ACK пакетом.\nБраузер отправляет ACK-пакет, подтверждая установление соединения.\n\n🟠HTTPS и SSL/TLS\nЕсли URL использует HTTPS, происходит дополнительный этап установки защищенного соединения с использованием SSL/TLS:\nБраузер и сервер обмениваются сертификатами и выполняют шифрование данных.\n\n🟠Отправка HTTP-запроса\nБраузер отправляет HTTP-запрос на сервер. Например, для получения главной страницы сайта может быть отправлен следующий запрос:\n GET / HTTP/1.1\n Host: www.example.com\n\n🟠Обработка запроса на сервере\nСервер принимает запрос, обрабатывает его, генерирует ответ и отправляет его обратно клиенту. Сервер может выполнять различные задачи, такие как доступ к базе данных, обработка логики приложения и рендеринг страниц.\n\n🟠Получение и обработка HTTP-ответа\nБраузер получает HTTP-ответ от сервера. Ответ включает в себя статусный код, заголовки и тело (содержимое) ответа. Пример HTTP-ответа:\n HTTP/1.1 200 OK\n Content-Type: text/html\n Content-Length: 1234\n\n \n \n \n Пример страницы\n \n \n
Добро пожаловать!
\n \n \n \n\n🟠Парсинг и рендеринг страницы\nБраузер начинает парсинг HTML-документа. Этот процесс включает построение DOM (Document Object Model) — структуры дерева, представляющей элементы страницы.\nВ процессе парсинга HTML браузер может обнаруживать ссылки на другие ресурсы, такие как CSS, JavaScript, изображения и шрифты, и отправлять дополнительные HTTP-запросы для их загрузки.\n\n🟠Выполнение JavaScript\nПосле парсинга HTML и CSS браузер начинает выполнение встроенных и внешних JavaScript-скриптов. JavaScript может изменять DOM и CSSOM (CSS Object Model), что приводит к изменениям в отображении страницы.\nJavaScript также может отправлять асинхронные запросы (AJAX) для динамической загрузки данных и обновления страницы без перезагрузки.\n\nСтавь 👍 и забирай 📚 Базу знаний","datePublished":"2025-12-29T09:05:31Z","dateModified":"2025-12-29T09:05:31Z","author":{"@type":"Organization","name":"Frontend | Вопросы собесов","url":"https://telemetr.io/ch/channels/1917151177-easy_javascript_ru","image":"https://img.tlmtr.io/c/25KaBb/5431453649143450783?ty=x"},"publisher":{"@type":"Organization","name":"Frontend | Вопросы собесов","url":"https://telemetr.io/ch/channels/1917151177-easy_javascript_ru","image":"https://img.tlmtr.io/c/25KaBb/5431453649143450783?ty=x"},"commentCount":0,"interactionStatistic":[{"@type":"InteractionCounter","interactionType":"https://schema.org/ViewAction","userInteractionCount":2033},{"@type":"InteractionCounter","interactionType":"https://schema.org/LikeAction","userInteractionCount":13},{"@type":"InteractionCounter","interactionType":"https://schema.org/ShareAction","userInteractionCount":49}]}},{"@type":"ListItem","position":8,"item":{"@type":"SocialMediaPosting","@id":"https://telemetr.io/ch/channels/1917151177-easy_javascript_ru/posts/2273","url":"https://telemetr.io/ch/channels/1917151177-easy_javascript_ru/posts/2273","mainEntityOfPage":"https://telemetr.io/ch/channels/1917151177-easy_javascript_ru/posts/2273","headline":"Бесплатная защита от DDoS-атак 📱 DDoS-атаки способны замедлить сайт или полностью вывести его из строя. Особе…","articleBody":"Бесплатная защита от DDoS-атак\n\n📱 DDoS-атаки способны замедлить сайт или полностью вывести его из строя. Особенно это критично в пиковые сезоны или во время распродаж, когда каждая минута простоя сайта равна потерянным клиентам.\n\n👍 AntiDDoS от Solar Space — облачное решение для защиты сайта от DDoS-атак. Бесплатный тариф подходит для небольших ресурсов: сайтов-визиток, сайтов экспертов и корпоративных порталов.\n\n✅ Решение не требует сложных настроек: после активации сервис сразу начинает фильтровать трафик и подавлять атаки. \n\n👌 Подключение занимает всего 20 минут в личном кабинете. Никаких карт, подписок и скрытых платежей. \n\nВключить\n\n#реклама 16+\nrt-solar.ru\nО рекламодателе","datePublished":"2025-12-28T23:31:31Z","dateModified":"2025-12-30T21:59:32Z","author":{"@type":"Organization","name":"Frontend | Вопросы собесов","url":"https://telemetr.io/ch/channels/1917151177-easy_javascript_ru","image":"https://img.tlmtr.io/c/25KaBb/5431453649143450783?ty=x"},"publisher":{"@type":"Organization","name":"Frontend | Вопросы собесов","url":"https://telemetr.io/ch/channels/1917151177-easy_javascript_ru","image":"https://img.tlmtr.io/c/25KaBb/5431453649143450783?ty=x"},"commentCount":0,"interactionStatistic":[{"@type":"InteractionCounter","interactionType":"https://schema.org/ViewAction","userInteractionCount":1336},{"@type":"InteractionCounter","interactionType":"https://schema.org/LikeAction","userInteractionCount":1}]}},{"@type":"ListItem","position":9,"item":{"@type":"SocialMediaPosting","@id":"https://telemetr.io/ch/channels/1917151177-easy_javascript_ru/posts/2272","url":"https://telemetr.io/ch/channels/1917151177-easy_javascript_ru/posts/2272","mainEntityOfPage":"https://telemetr.io/ch/channels/1917151177-easy_javascript_ru/posts/2272","headline":"🤔 Что такое debug? Debug (отладка) — это процесс поиска и устранения ошибок в коде. В ходе отладки разработчи…","articleBody":"🤔 Что такое debug?\n\nDebug (отладка) — это процесс поиска и устранения ошибок в коде. В ходе отладки разработчик пошагово проверяет выполнение программы, отслеживает значения переменных и логику исполнения.\n\nСтавь 👍 если знал ответ, 🔥 если нет\nЗабирай 📚 Базу знаний","datePublished":"2025-12-28T16:10:30Z","dateModified":"2025-12-28T16:10:30Z","author":{"@type":"Organization","name":"Frontend | Вопросы собесов","url":"https://telemetr.io/ch/channels/1917151177-easy_javascript_ru","image":"https://img.tlmtr.io/c/25KaBb/5431453649143450783?ty=x"},"publisher":{"@type":"Organization","name":"Frontend | Вопросы собесов","url":"https://telemetr.io/ch/channels/1917151177-easy_javascript_ru","image":"https://img.tlmtr.io/c/25KaBb/5431453649143450783?ty=x"},"commentCount":0,"interactionStatistic":[{"@type":"InteractionCounter","interactionType":"https://schema.org/ViewAction","userInteractionCount":2067},{"@type":"InteractionCounter","interactionType":"https://schema.org/LikeAction","userInteractionCount":10},{"@type":"InteractionCounter","interactionType":"https://schema.org/ShareAction","userInteractionCount":3}]}},{"@type":"ListItem","position":10,"item":{"@type":"SocialMediaPosting","@id":"https://telemetr.io/ch/channels/1917151177-easy_javascript_ru/posts/2271","url":"https://telemetr.io/ch/channels/1917151177-easy_javascript_ru/posts/2271","mainEntityOfPage":"https://telemetr.io/ch/channels/1917151177-easy_javascript_ru/posts/2271","headline":"🤔 Какие значения будут являться falsy значениями? В JavaScript значения, которые при приведении к логическому…","articleBody":"🤔 Какие значения будут являться falsy значениями? \n\nВ JavaScript значения, которые при приведении к логическому типу (boolean) становятся false, называются \"falsy\" значениями. Существует всего семь таких значений:\n\n🟠`false`\nЛогическое значение false. \nconsole.log(Boolean(false)); // false \n\n🟠`0`\nЧисло ноль. \nconsole.log(Boolean(0)); // false \n\n🟠`-0`\nОтрицательное число ноль (хотя это редко встречается на практике). \nconsole.log(Boolean(-0)); // false \n\n🟠`0n`\nЧисло BigInt с значением ноль. \nconsole.log(Boolean(0n)); // false \n\n🟠`\"\"` (пустая строка)\nСтрока без символов. \nconsole.log(Boolean(\"\")); // false \n\n🟠`null`\nСпециальное значение, обозначающее отсутствие какого-либо значения. \nconsole.log(Boolean(null)); // false \n\n🟠`undefined`\nСпециальное значение, обозначающее необъявленное или неприсвоенное значение. \nconsole.log(Boolean(undefined)); // false \n\n🟠`NaN`\nСпециальное значение, обозначающее не число (Not-a-Number). \nconsole.log(Boolean(NaN)); // false \n\n🚩Примеры использования\n\n🟠Проверка значений на falsy\nВ условиях (if statements) все falsy значения интерпретируются как false.\nconst values = [false, 0, -0, 0n, \"\", null, undefined, NaN];\n\nvalues.forEach(value => {\n if (!value) {\n console.log(`${value} is falsy`);\n }\n});\n\nПримеры в условиях\nif (!false) {\n console.log('false is falsy'); // выводится\n}\n\nif (!0) {\n console.log('0 is falsy'); // выводится\n}\n\nif (!\"\") {\n console.log('\"\" is falsy'); // выводится\n}\n\nif (!null) {\n console.log('null is falsy'); // выводится\n}\n\nif (!undefined) {\n console.log('undefined is falsy'); // выводится\n}\n\nif (!NaN) {\n console.log('NaN is falsy'); // выводится\n}\n\n🟠Использование в логических операторах\nFalsy значения также учитываются в логических операциях.\nconst value = null;\n\nconst result = value || 'default value';\nconsole.log(result); // 'default value', потому что value является falsy\n\nСтавь 👍 и забирай 📚 Базу знаний","datePublished":"2025-12-28T09:05:30Z","dateModified":"2025-12-28T09:05:30Z","author":{"@type":"Organization","name":"Frontend | Вопросы собесов","url":"https://telemetr.io/ch/channels/1917151177-easy_javascript_ru","image":"https://img.tlmtr.io/c/25KaBb/5431453649143450783?ty=x"},"publisher":{"@type":"Organization","name":"Frontend | Вопросы собесов","url":"https://telemetr.io/ch/channels/1917151177-easy_javascript_ru","image":"https://img.tlmtr.io/c/25KaBb/5431453649143450783?ty=x"},"commentCount":0,"interactionStatistic":[{"@type":"InteractionCounter","interactionType":"https://schema.org/ViewAction","userInteractionCount":2348},{"@type":"InteractionCounter","interactionType":"https://schema.org/LikeAction","userInteractionCount":5},{"@type":"InteractionCounter","interactionType":"https://schema.org/ShareAction","userInteractionCount":12}]}},{"@type":"ListItem","position":11,"item":{"@type":"SocialMediaPosting","@id":"https://telemetr.io/ch/channels/1917151177-easy_javascript_ru/posts/2270","url":"https://telemetr.io/ch/channels/1917151177-easy_javascript_ru/posts/2270","mainEntityOfPage":"https://telemetr.io/ch/channels/1917151177-easy_javascript_ru/posts/2270","headline":"🤔 Как выглядят REST-запросы? REST-запросы используют методы HTTP: - GET /users — получить список; - POST /use…","articleBody":"🤔 Как выглядят REST-запросы?\n\nREST-запросы используют методы HTTP:\n- GET /users — получить список;\n- POST /users — создать нового пользователя;\n- PUT /users/1 — заменить пользователя;\n- PATCH /users/1 — частично обновить;\n- DELETE /users/1 — удалить.\nОни передают данные через URL, заголовки и тело запроса (чаще в формате JSON).\n\nСтавь 👍 если знал ответ, 🔥 если нет\nЗабирай 📚 Базу знаний","datePublished":"2025-12-27T16:10:30Z","dateModified":"2025-12-27T16:10:30Z","author":{"@type":"Organization","name":"Frontend | Вопросы собесов","url":"https://telemetr.io/ch/channels/1917151177-easy_javascript_ru","image":"https://img.tlmtr.io/c/25KaBb/5431453649143450783?ty=x"},"publisher":{"@type":"Organization","name":"Frontend | Вопросы собесов","url":"https://telemetr.io/ch/channels/1917151177-easy_javascript_ru","image":"https://img.tlmtr.io/c/25KaBb/5431453649143450783?ty=x"},"commentCount":0,"interactionStatistic":[{"@type":"InteractionCounter","interactionType":"https://schema.org/ViewAction","userInteractionCount":2026},{"@type":"InteractionCounter","interactionType":"https://schema.org/LikeAction","userInteractionCount":17},{"@type":"InteractionCounter","interactionType":"https://schema.org/ShareAction","userInteractionCount":16}]}},{"@type":"ListItem","position":12,"item":{"@type":"SocialMediaPosting","@id":"https://telemetr.io/ch/channels/1917151177-easy_javascript_ru/posts/2269","url":"https://telemetr.io/ch/channels/1917151177-easy_javascript_ru/posts/2269","mainEntityOfPage":"https://telemetr.io/ch/channels/1917151177-easy_javascript_ru/posts/2269","headline":"🤔 Что такое flexbox? Flexbox (Flexible Box Layout) – это модель размещения элементов в CSS, которая делает ма…","articleBody":"🤔 Что такое flexbox?\n\nFlexbox (Flexible Box Layout) – это модель размещения элементов в CSS, которая делает макет гибким и удобным для адаптивной верстки. \n\nГлавные особенности\n🟠Гибкое выравнивание \nэлементов в строку или колонку \n🟠Равномерное распределение \nпространства между элементами \n🟠Упрощает адаптивную верстку \nбез float и position \n🟠Легкое центрирование \nэлементов \n\n🚩Основные термины Flexbox \n\nКогда включается display: flex;, элементы внутри него становятся флекс-элементами. \n\nFlex-контейнер → родительский элемент (display: flex;) \nFlex-элементы → дочерние элементы контейнера \nГлавная ось (main axis) → ось, вдоль которой расположены элементы \nПоперечная ось (cross axis) → перпендикулярная ось \n
\n
1
\n
2
\n
3
\n
\n.container {\n display: flex;\n}\n\n🚩Основные свойства Flexbox \n\n🟠`display: flex;` \nВключает Flexbox для контейнера. \n.container {\n display: flex;\n}\n\n🟠`flex-direction` – направление оси \nОпределяет, как располагаются элементы (по горизонтали или вертикали). \n.container {\n flex-direction: row; /* По умолчанию: слева направо */\n}\n/* Другие значения */\n.container {\n flex-direction: column; /* В столбик */\n flex-direction: row-reverse; /* Справа налево */\n flex-direction: column-reverse; /* Вниз-вверх */\n}\n\n🟠`justify-content` – выравнивание по главной оси \n.container {\n justify-content: flex-start; /* По умолчанию, слева направо */\n justify-content: center; /* Центр */\n justify-content: flex-end; /* Справа налево */\n justify-content: space-between; /* Равномерное распределение */\n justify-content: space-around; /* С отступами */\n justify-content: space-evenly; /* Равномерные промежутки */\n}\n\n🟠`align-items` – выравнивание по поперечной оси \n.container {\n align-items: stretch; /* По умолчанию (растягивает) */\n align-items: center; /* Центр по вертикали */\n align-items: flex-start; /* Вверх */\n align-items: flex-end; /* Вниз */\n align-items: baseline; /* По базовой линии текста */\n}\n\n🟠`flex-wrap` – перенос элементов на новую строку \n.container {\n flex-wrap: nowrap; /* По умолчанию – все в одной строке */\n flex-wrap: wrap; /* Элементы переносятся */\n flex-wrap: wrap-reverse; /* Перенос в обратном порядке */\n}\n\n🟠`align-content` – выравнивание строк (если `flex-wrap: wrap;`) \nРаботает, когда элементы занимают несколько строк. \n.container {\n align-content: flex-start; /* Вверх */\n align-content: flex-end; /* Вниз */\n align-content: center; /* По центру */\n align-content: space-between; /* Равномерное распределение */\n align-content: space-around; /* С отступами */\n align-content: stretch; /* Растянуть (по умолчанию) */\n}\n\n🚩Управление отдельными элементами (`flex`-элементы) \n\nflex-grow – рост элемента \n.item {\n flex-grow: 1; /* Растянется, если есть место */\n}\nflex-shrink – сжатие элемента \n.item {\n flex-shrink: 0; /* Не уменьшаться */\n}\n\nflex-basis – начальный размер элемента\n.item {\n flex-basis: 200px; /* Фиксированный размер */\n}\n\nСтавь 👍 и забирай 📚 Базу знаний","datePublished":"2025-12-27T09:05:30Z","dateModified":"2025-12-27T09:05:30Z","author":{"@type":"Organization","name":"Frontend | Вопросы собесов","url":"https://telemetr.io/ch/channels/1917151177-easy_javascript_ru","image":"https://img.tlmtr.io/c/25KaBb/5431453649143450783?ty=x"},"publisher":{"@type":"Organization","name":"Frontend | Вопросы собесов","url":"https://telemetr.io/ch/channels/1917151177-easy_javascript_ru","image":"https://img.tlmtr.io/c/25KaBb/5431453649143450783?ty=x"},"commentCount":0,"interactionStatistic":[{"@type":"InteractionCounter","interactionType":"https://schema.org/ViewAction","userInteractionCount":2108},{"@type":"InteractionCounter","interactionType":"https://schema.org/LikeAction","userInteractionCount":11},{"@type":"InteractionCounter","interactionType":"https://schema.org/ShareAction","userInteractionCount":13}]}},{"@type":"ListItem","position":13,"item":{"@type":"SocialMediaPosting","@id":"https://telemetr.io/ch/channels/1917151177-easy_javascript_ru/posts/2268","url":"https://telemetr.io/ch/channels/1917151177-easy_javascript_ru/posts/2268","mainEntityOfPage":"https://telemetr.io/ch/channels/1917151177-easy_javascript_ru/posts/2268","headline":"🤔 Как поставить cookie-файл так, чтобы он удалился через 3 дня? Нужно задать атрибут времени жизни (Expires и…","articleBody":"🤔 Как поставить cookie-файл так, чтобы он удалился через 3 дня?\n\nНужно задать атрибут времени жизни (Expires или Max-Age) на 3 дня вперёд от текущей даты. После этого браузер автоматически удалит cookie по истечении срока.\n\nСтавь 👍 если знал ответ, 🔥 если нет\nЗабирай 📚 Базу знаний","datePublished":"2025-12-26T16:10:30Z","dateModified":"2025-12-26T16:10:30Z","author":{"@type":"Organization","name":"Frontend | Вопросы собесов","url":"https://telemetr.io/ch/channels/1917151177-easy_javascript_ru","image":"https://img.tlmtr.io/c/25KaBb/5431453649143450783?ty=x"},"publisher":{"@type":"Organization","name":"Frontend | Вопросы собесов","url":"https://telemetr.io/ch/channels/1917151177-easy_javascript_ru","image":"https://img.tlmtr.io/c/25KaBb/5431453649143450783?ty=x"},"commentCount":0,"interactionStatistic":[{"@type":"InteractionCounter","interactionType":"https://schema.org/ViewAction","userInteractionCount":1971},{"@type":"InteractionCounter","interactionType":"https://schema.org/LikeAction","userInteractionCount":14},{"@type":"InteractionCounter","interactionType":"https://schema.org/ShareAction","userInteractionCount":8}]}},{"@type":"ListItem","position":14,"item":{"@type":"SocialMediaPosting","@id":"https://telemetr.io/ch/channels/1917151177-easy_javascript_ru/posts/2267","url":"https://telemetr.io/ch/channels/1917151177-easy_javascript_ru/posts/2267","mainEntityOfPage":"https://telemetr.io/ch/channels/1917151177-easy_javascript_ru/posts/2267","headline":"🤔 Когда нужно использовать кнопки а когда ссылки? В веб-разработке часто возникает вопрос: использовать кнопк…","articleBody":"🤔 Когда нужно использовать кнопки а когда ссылки?\n\nВ веб-разработке часто возникает вопрос: использовать кнопку (