Рассмотрим распространенные ошибки которые допускают разработчики при работе с tailwind и пути их решения.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
Создайте карточку, которая содержит изображение и текст, выровненный по нижнему краю карточки. Карточка должна иметь фиксированную высоту, и текст всегда должен находиться у нижней границы.
Ожидаемое поведение:
• Изображение занимает верхнюю часть карточки.• Текст закреплён внизу карточки, даже если изображение маленькое.Решение задачи
<div class="card">
<img src="https://via.placeholder.com/150 " alt="Placeholder Image" class="card-img">
<div class="card-text">Текст внизу карточки</div>
</div>
.card {
width: 200px;
height: 300px;
display: flex;
flex-direction: column;
justify-content: space-between;
border: 1px solid#ccc ;
border-radius: 8px;
overflow: hidden;
box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
}
.card-img {
width: 100%;
height: auto;
max-height: 70%; /* Ограничиваем высоту изображения */
}
.card-text {
padding: 10px;
background-color:#f9f9f9 ;
text-align: center;
}
Please open Telegram to view this post
VIEW IN TELEGRAM
• Знакомьтесь: input, output и model. Новые функции в Angular
• Мой путь в мире веб-рендеринга: от статических страниц к гибридным архитектурам
• Новый этап эволюции Vue — Vapor
• Как сделать один плагин сразу для всех сборщиков фронтенда?
• Личный опыт: добавление микроразметки на сайт
Please open Telegram to view this post
VIEW IN TELEGRAM
Создайте переключатель, позволяющий пользователю менять тему страницы между светлой и тёмной. При переключении должна происходить плавная анимация перехода. Реализуйте переключение тем с помощью CSS-переменных и JavaScript.
Решение задачи
<div class="theme-toggle">
<label class="switch">
<input type="checkbox" id="theme-switcher">
<span class="slider"></span>
</label>
<p>Нажмите, чтобы переключить тему</p>
</div>
/* Переменные для тем */
:root {
--bg-color-light:#ffffff ;
--bg-color-dark: #333333;
--text-color-light: #000000;
--text-color-dark:#ffffff ;
--transition-duration: 0.3s;
}
/* Общие стили */
body {
background-color: var(--bg-color-light);
color: var(--text-color-light);
transition: background-color var(--transition-duration), color var(--transition-duration);
}
/* Тёмная тема */
body.dark-theme {
background-color: var(--bg-color-dark);
color: var(--text-color-dark);
}
/* Стили для переключателя */
.theme-toggle {
display: flex;
align-items: center;
gap: 10px;
margin-top: 20px;
}
.switch {
position: relative;
display: inline-block;
width: 50px;
height: 24px;
}
.switch input {
opacity: 0;
width: 0;
height: 0;
}
.slider {
position: absolute;
cursor: pointer;
top: 0;
left: 0;
right: 0;
bottom: 0;
background-color:#ccc ;
border-radius: 24px;
transition: background-color var(--transition-duration);
}
.slider:before {
position: absolute;
content: "";
height: 18px;
width: 18px;
left: 4px;
bottom: 3px;
background-color: white;
border-radius: 50%;
transition: transform var(--transition-duration);
}
input:checked + .slider {
background-color:#2196F3 ;
}
input:checked + .slider:before {
transform: translateX(26px);
}
document.getElementById('theme-switcher').addEventListener('change', (event) => {
document.body.classList.toggle('dark-theme', event.target.checked);
});
Please open Telegram to view this post
VIEW IN TELEGRAM
JavaScript Software Engineer
Fullstack программист-разработчик WEB-приложений (NodeJS, React, PostgreSQL)
JavaScript-разработчик в ФинТех проект
Please open Telegram to view this post
VIEW IN TELEGRAM
em и rem в CSS?В CSS
em и rem — это относительные единицы измерения, используемые для задания размеров шрифтов, отступов, полей и других стилей. em основывается на размере шрифта родителя, тогда как rem ориентирован на размер шрифта корневого элемента (html), что делает его предсказуемым и удобным для масштабирования.html {
font-size: 16px; /* Базовый размер шрифта */
}
.container {
font-size: 2em; /* 32px, основывается на размере родителя */
margin: 1rem; /* 16px, независимо от родителя */
}🗣️ Использование rem помогает сохранить консистентность размеров при вложенных элементах, а em подходит для адаптивного дизайна, когда размеры зависят от родителей.
Please open Telegram to view this post
VIEW IN TELEGRAM
Frontend Developer (Видеоплеер)
• JavaScript, TypeScript, HTML, CSS, React, Webpack, Rollup, HLS, MPEG-DASH• Уровень дохода не указан | Требуемый опыт: от 1 годаFrontend developer (Vue.js)
• Vue.js, Nuxt.js, JavaScript, CSS, HTML, Webpack, Vite, Git• от 200 000 до 300 000 ₽ | Требуемый опыт: от 3 летFrontend разработчик middle/middle+
• JavaScript, TypeScript, React, Node.js, REST API, Webpack, Gulp, CSS-препроцессоры, Git• Уровень дохода не указан | Требуемый опыт: от 3 летPlease open Telegram to view this post
VIEW IN TELEGRAM
Первая часть статьи даёт правила для Handlebars в Superset. Далее — готовый код HTML + CSS, который можно сразу использовать, и разбор CSS-элементов с объяснениями.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
Напишите разметку и стили для отображения карточек товаров в сетке. Сетка должна адаптироваться к размеру экрана: на больших экранах отображать карточки в три колонки, на планшетах — в две, а на мобильных устройствах — в одну колонку. Карточки должны иметь тень, отступы и закруглённые углы, чтобы выглядеть как отдельные блоки.
Решение задачи
<div class="product-grid">
<div class="product-card">Товар 1</div>
<div class="product-card">Товар 2</div>
<div class="product-card">Товар 3</div>
<div class="product-card">Товар 4</div>
<div class="product-card">Товар 5</div>
<div class="product-card">Товар 6</div>
</div>
/* Основной контейнер */
.product-grid {
display: grid;
gap: 20px;
padding: 20px;
}
/* Стили карточек */
.product-card {
background-color:#f9f9f9 ;
padding: 20px;
border-radius: 8px;
box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
text-align: center;
}
/* Три колонки на больших экранах */@media (min-width: 1024px) {
.product-grid {
grid-template-columns: repeat(3, 1fr);
}
}
/* Две колонки на планшетах */@media (min-width: 768px) and (max-width: 1023px) {
.product-grid {
grid-template-columns: repeat(2, 1fr);
}
}
/* Одна колонка на мобильных */@media (max-width: 767px) {
.product-grid {
grid-template-columns: 1fr;
}
}
Please open Telegram to view this post
VIEW IN TELEGRAM
Статья рассказывает об архитектуре Inverted Triangle CSS, которая помогает масштабировать и поддерживать крупные CSS проекты. Обсуждаются причины выбора, пошаговая реализация и сравнение с другими подходами.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
Настраиваемая панель инструментов. Сделана на SVG, CSS и JavaScript.
Открыть код...
Please open Telegram to view this post
VIEW IN TELEGRAM
Middle+/Senior Frontend developer (СберНПФ)
• Angular, TypeScript, JavaScript, Node.js, PostgreSQL, Apache Kafka, REST• Уровень дохода не указан | от 3 лет опытаFrontend-разработчик Angular (middle+/senior)
• Angular, JavaScript, HTTP, REST API, Agile, CI/CD, NGINX, Unit-тестирование• Уровень дохода не указан | от 3 лет опытаFullstack Typenoscript Developer [Senior]
• TypeScript, Node.js, React, SQL, Kubernetes, Docker• Уровень дохода не указан | от 4 лет опытаPlease open Telegram to view this post
VIEW IN TELEGRAM
Думаете, что знаете вообще все об асинхронности в JavaScript? Уверены, что так оно и есть. Но проверить свои знания никогда не помешает — для этого как раз собрали эту небольшую викторину.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
CSS Grid Layout — это мощная система для создания сеточных макетов на веб-страницах. Она позволяет легко размещать элементы на странице в виде строк и столбцов с минимальным количеством кода. Grid обеспечивает точное позиционирование и гибкость, идеально подходя для сложных макетов.
<div class="grid-container">
<div class="item">1</div>
<div class="item">2</div>
<div class="item">3</div>
</div>
<style>
.grid-container {
display: grid;
grid-template-columns: repeat(3, 1fr); /* Три равных столбца */
gap: 10px; /* Расстояние между элементами */
}
.item {
background: lightblue;
padding: 20px;
text-align: center;
}
</style>
🗣️ В этом примере .grid-container создает сетку с тремя столбцами одинаковой ширины. Свойство gap добавляет отступы между элементами. Grid Layout упрощает создание адаптивных макетов.
Please open Telegram to view this post
VIEW IN TELEGRAM
Ключевое слово
exit и его псевдоним die — языковые конструкции, выводящие сообщение и завершающие текущий сценарий. В CLI-приложениях exit/die можно использовать для завершения работы приложения с заданным кодом выхода.Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
В статье обсуждаются современные подходы к переключению контента в вебе. Рассматриваются нативные API, их преимущества, недостатки и неожиданные особенности, включая работу с псевдоэлементами.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
🕵️ Знай систему на уровне зависимостей
Работаешь с проектом, где используется миллион библиотек и фреймворков? Когда что-то ломается, найти виноватого становится задачей.
👉 Совет: выдели время, чтобы разобраться в основных зависимостях проекта. Проверь, какие библиотеки действительно нужны, а какие можно заменить или убрать. Понимание связей между компонентами сделает тебя настоящим мастером проекта.
Работаешь с проектом, где используется миллион библиотек и фреймворков? Когда что-то ломается, найти виноватого становится задачей.
Please open Telegram to view this post
VIEW IN TELEGRAM
Tech Lead (PHP)
Team Lead Frontend (Vue.js / Nuxt.js)
Junior Frontend Developer
Please open Telegram to view this post
VIEW IN TELEGRAM
В руководстве рассматриваются такие шаблоны работы с DOM на JavaScript, как выбор правильного querySelector, кэширование элементов и улучшение обработки событий.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM