#js #css
Что такое CSS Houdini и для чего он используется?
Уровень:9️⃣
CSS Houdini — это набор API, расширяющий возможности CSS при помощи создания собственных стилей и эффектов, которые невозможно реализовать стандартными свойствами CSS . Он предоставляет доступ к процессу рендеринга CSS , позволяя программистам «разблокировать» низкоуровневые возможности браузера.
Ресурсы для изучения:
📄 Статья
📄 Статья
Что такое CSS Houdini и для чего он используется?
Уровень:
Ресурсы для изучения:
📄 Статья
📄 Статья
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🔥7🏆2
#css
В чем разница css reset и normalize css?
Уровень:4️⃣
CSS Reset и Normalize. css — это инструменты, предназначенные для устранения стилей по умолчанию в браузерах, чтобы обеспечить более конгруэнтное и предсказуемое отображение веб-страниц на разных устройствах и в разных браузерах.
CSS Reset: Удаляет все стандартные стили браузеров, устанавливая элементы в нулевое состояние, что позволяет разработчику начинать с чистого листа.
Normalize. css : Сохраняет некоторые полезные стили по умолчанию и улучшает согласованность отображения элементов, сохраняя при этом семантические стили.
Ресурсы для изучения:
📄 Статья
📱 YouTube
В чем разница css reset и normalize css?
Уровень:
Normalize.
Ресурсы для изучения:
📄 Статья
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🔥5🏆1
#css
Какие в CSS есть виды градиентов?
Уровень:4️⃣
1. Линейные градиенты (linear-gradient): Переход между цветами по прямой линии.
2. Радиальные градиенты (radial-gradient): Переход между цветами от центральной точки к краям в круговой форме.
3. Конусные градиенты (conic-gradient): Переход между цветами вокруг центральной точки, создавая эффект круга (или конуса).
Ресурсы для изучения:
📔 Дока
📄 Статья
Какие в CSS есть виды градиентов?
Уровень:
2. Радиальные градиенты (radial-gradient): Переход между цветами от центральной точки к краям в круговой форме.
3. Конусные градиенты (conic-gradient): Переход между цветами вокруг центральной точки, создавая эффект круга (или конуса).
Ресурсы для изучения:
📔 Дока
📄 Статья
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9❤3🔥3
#css
Для чего используется CSS-атрибут ( attr )?
Уровень:3️⃣
CSS -атрибут `attr()` используется для получения значений атрибутов HTML-элемента и отображения их в стиле. Однако на данный момент он поддерживается только для контента, определяемого в `content` в псевдоэлементах `::before` и `::after`.
Ресурсы для изучения:
📔 Дока
📄 Статья
Для чего используется CSS-атрибут ( attr )?
Уровень:
Ресурсы для изучения:
📔 Дока
📄 Статья
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥2🏆2
#css
Какие есть варианты скрытия элемента со страницы с помощью CSS?
Уровень:3️⃣
display: none; – полностью скрывает элемент и убирает его из потока документа.
visibility: hidden; – скрывает элемент, но оставляет место для него на странице.
opacity: 0; – делает элемент полностью прозрачным, но он по-прежнему занимает место в потоке документа.
position: absolute; с left: -9999px; – перемещает элемент за пределы видимости, сохраняя его в DOM.
Ресурсы для изучения:
📄 Статья
Какие есть варианты скрытия элемента со страницы с помощью CSS?
Уровень:
visibility: hidden; – скрывает элемент, но оставляет место для него на странице.
opacity: 0; – делает элемент полностью прозрачным, но он по-прежнему занимает место в потоке документа.
position: absolute; с left: -9999px; – перемещает элемент за пределы видимости, сохраняя его в DOM.
Ресурсы для изучения:
📄 Статья
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10👍4❤2
#css
Для чего нужно свойство object-fit в CSS?
Уровень:4️⃣
object-fit — это CSS -свойство, которое определяет, как содержимое, например, изображение или видео, должно быть размещено (масштабировано и обрезано) в пределах своего контейнера. Это свойство особенно полезно для управления отображением медиа-ресурсов, сохраняя их пропорции и избегая искажений.
Ресурсы для изучения:
📔 Дока
📄 Статья
Для чего нужно свойство object-fit в CSS?
Уровень:
Ресурсы для изучения:
📔 Дока
📄 Статья
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12🔥3🏆1
#css
Как сделать тень, падающую по границе
изображения?
Уровень:3️⃣
drop-shadow ( ) - это функция в CSS ,
используемая для добавления тени к границе
изображения. Она применяется с помощью
свойства filter и принимает значения для
смещения по оси х, смещения по оси Y, размытия и
цвета тени.
Ресурсы для изучения:
📔 Дока
📄 Статья
📱 Видео
Как сделать тень, падающую по границе
изображения?
Уровень:
используемая для добавления тени к границе
изображения. Она применяется с помощью
свойства filter и принимает значения для
смещения по оси х, смещения по оси Y, размытия и
цвета тени.
Ресурсы для изучения:
📔 Дока
📄 Статья
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🔥1🏆1
#css
❓ Как устроены Flexbox и его основные свойства?
Flexbox, или Flexible Box Layout, — это метод компоновки в CSS, предназначенный для создания более гибких и отзывчивых макетов. Flexbox упрощает процесс выравнивания и распределения пространства между элементами в контейнере. Рассмотрим основные свойства:
1. display: flex
Это свойство устанавливает элемент как flex-контейнер, и его дочерние элементы становятся flex-элементами.
2. flex-direction
Это свойство определяет направление, в котором будут расположены flex-элементы. Возможные значения: row (по умолчанию), row-reverse, column, column-reverse.
3. justify-content
Свойство управляет выравниванием flex-элементов вдоль главной оси (по направлению flex-direction). Возможные значения: flex-start, flex-end, center, space-between, space-around.
4. align-items
Это свойство управляет выравниванием flex-элементов вдоль поперечной оси (перпендикулярно главной оси). Возможные значения: flex-start, flex-end, center, baseline, stretch.
5. flex-wrap
Свойство определяет, должны ли flex-элементы переноситься на новую строку, если они не помещаются в контейнер. Значения: nowrap (по умолчанию), wrap, wrap-reverse.
Пример:
🟰 Flexbox часто используется для создания адаптивных макетов. Он позволяет легко управлять пространством и выравниванием элементов, что упрощает процесс разработки более сложных интерфейсов.
Ресурсы для изучения:
📖 Статья
📹 Видео
💬 Новости
🎓 Платформа
Flexbox, или Flexible Box Layout, — это метод компоновки в CSS, предназначенный для создания более гибких и отзывчивых макетов. Flexbox упрощает процесс выравнивания и распределения пространства между элементами в контейнере. Рассмотрим основные свойства:
1. display: flex
Это свойство устанавливает элемент как flex-контейнер, и его дочерние элементы становятся flex-элементами.
2. flex-direction
Это свойство определяет направление, в котором будут расположены flex-элементы. Возможные значения: row (по умолчанию), row-reverse, column, column-reverse.
3. justify-content
Свойство управляет выравниванием flex-элементов вдоль главной оси (по направлению flex-direction). Возможные значения: flex-start, flex-end, center, space-between, space-around.
4. align-items
Это свойство управляет выравниванием flex-элементов вдоль поперечной оси (перпендикулярно главной оси). Возможные значения: flex-start, flex-end, center, baseline, stretch.
5. flex-wrap
Свойство определяет, должны ли flex-элементы переноситься на новую строку, если они не помещаются в контейнер. Значения: nowrap (по умолчанию), wrap, wrap-reverse.
Пример:
.container {
display: flex;
flex-direction: row; /* Элементы располагаются по горизонтали */
justify-content: center; /* Элементы выравниваются по центру */
align-items: stretch; /* Элементы растягиваются на всю высоту строки */
flex-wrap: wrap; /* Элементы будут переноситься на следующую строку */
}
Ресурсы для изучения:
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10❤3🔥2
#css
❔Что произойдет, если содержимое блока превысит его размеры?
При переполнении содержимого блока, оно по умолчанию будет выходить за его границы, что может привести к неэстетичному виду или наложению элементов.
Чтобы предотвратить это, можно использовать свойство overflow, которое поддерживает несколько значений:
- visible (по умолчанию, содержимое выходит за пределы блока)
- hidden (скрывает переполненное содержимое), scroll (добавляет прокрутку)
- auto (добавляет прокрутку, если содержимого больше, чем размер блока)
Например, для создания прокручиваемого блока с фиксированной высотой можно задать:
Это добавит вертикальную прокрутку, если содержимое окажется больше 100 пикселей.
Ресурсы для изучения:
➡️ Вопрос
📖 Статья
💬 Новости
🎓 Платформа
❔Что произойдет, если содержимое блока превысит его размеры?
При переполнении содержимого блока, оно по умолчанию будет выходить за его границы, что может привести к неэстетичному виду или наложению элементов.
Чтобы предотвратить это, можно использовать свойство overflow, которое поддерживает несколько значений:
- visible (по умолчанию, содержимое выходит за пределы блока)
- hidden (скрывает переполненное содержимое), scroll (добавляет прокрутку)
- auto (добавляет прокрутку, если содержимого больше, чем размер блока)
Например, для создания прокручиваемого блока с фиксированной высотой можно задать:
div {
height: 100px;
overflow: auto;
}
Это добавит вертикальную прокрутку, если содержимое окажется больше 100 пикселей.
Ресурсы для изучения:
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥3❤1
#css
✍️ Какие есть значения у свойства position, и когда стоит использовать каждое из них?
Свойство position в CSS определяет, как элементы располагаются на веб-странице. Вот основные значения и их особенности:
1. static:
Это значение по умолчанию. Элемент располагается в стандартном потоке документа. Нельзя использовать свойства top, right, bottom и left.
2. relative:
Элемент располагается относительно своего нормального положения. Свойства top, right, bottom и left могут использоваться элемента. Элемент по-прежнему занимает место в потоке документа.
3. absolute:
Элемент располагается относительно ближайшего позиционированного (например, relative, absolute или fixed). Не занимает места в стандартном потоке документа.
4. fixed:
Элемент фиксируется относительно окна браузера. Он остается на месте при прокрутке страницы.
5. sticky:
Элемент ведет себя как relative, пока не достигнет заданной позиции при прокрутке, после чего становится фиксированным. Это полезно для создания навигационных панелей или заголовков, которые остаются видимыми при прокрутке.
Ресурсы для изучения:
📹 Видео
➡️ Вопрос
💬 Новости
🎓 Платформа
Свойство position в CSS определяет, как элементы располагаются на веб-странице. Вот основные значения и их особенности:
1. static:
Это значение по умолчанию. Элемент располагается в стандартном потоке документа. Нельзя использовать свойства top, right, bottom и left.
2. relative:
Элемент располагается относительно своего нормального положения. Свойства top, right, bottom и left могут использоваться элемента. Элемент по-прежнему занимает место в потоке документа.
3. absolute:
Элемент располагается относительно ближайшего позиционированного (например, relative, absolute или fixed). Не занимает места в стандартном потоке документа.
4. fixed:
Элемент фиксируется относительно окна браузера. Он остается на месте при прокрутке страницы.
5. sticky:
Элемент ведет себя как relative, пока не достигнет заданной позиции при прокрутке, после чего становится фиксированным. Это полезно для создания навигационных панелей или заголовков, которые остаются видимыми при прокрутке.
Ресурсы для изучения:
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9❤3🔥3
#css
👩💻 Каковы преимущества использования CSS-препроцессоров?
🔹 Переменные и их повторное использование
- Можно определить основные цвета, размеры и другие значения как переменные
- При необходимости изменения достаточно обновить значение в одном месте
- Это особенно полезно для поддержания единого стиля на всем сайте
🔹 Вложенные правила
- Позволяют писать CSS более структурированно, следуя HTML-иерархии
- Уменьшают повторение селекторов
- Делают код более читаемым и поддерживаемым
🔹 Миксины
- Позволяют создавать переиспользуемые блоки стилей
- Особенно полезны для вендорных префиксов и часто повторяющихся комбинаций свойств
- Можно передавать параметры для создания гибких стилей
🔹 Математические операции
- Возможность выполнять расчеты прямо в стилях
- Упрощает работу с относительными размерами и масштабированием
🔹 Модульность
- Разделение стилей на отдельные файлы
- Импорт только нужных модулей
- Лучшая организация кода в крупных проектах
🔹 Дополнительные функции
- Цветовые функции (осветление, затемнение)
- Циклы и условные операторы
- Расширенная работа с медиа-запросами
Ресурсы для изучения:
➡️ Вопрос
💬 Новости
🎓 Платформа
- Можно определить основные цвета, размеры и другие значения как переменные
- При необходимости изменения достаточно обновить значение в одном месте
- Это особенно полезно для поддержания единого стиля на всем сайте
- Позволяют писать CSS более структурированно, следуя HTML-иерархии
- Уменьшают повторение селекторов
- Делают код более читаемым и поддерживаемым
- Позволяют создавать переиспользуемые блоки стилей
- Особенно полезны для вендорных префиксов и часто повторяющихся комбинаций свойств
- Можно передавать параметры для создания гибких стилей
- Возможность выполнять расчеты прямо в стилях
- Упрощает работу с относительными размерами и масштабированием
- Разделение стилей на отдельные файлы
- Импорт только нужных модулей
- Лучшая организация кода в крупных проектах
- Цветовые функции (осветление, затемнение)
- Циклы и условные операторы
- Расширенная работа с медиа-запросами
А используете ли вы CSS-препроцессоры в своих проектах?
Если нет, то почему предпочитаете работать с чистым CSS?
Ресурсы для изучения:
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8
#css
👩🎨 Как работать с Tailwind CSS?
Tailwind CSS - это utility-first CSS фреймворк, который позволяет быстро создавать современные веб-интерфейсы, используя готовые классы прямо в HTML.
Основные концепции:
🔤 Базовые утилиты
- Размеры:
- Отступы:
- Цвета:
- Flexbox:
- Grid:
🔤 Адаптивный дизайн (breakpoints)
-
-
-
-
🔤 Интерактивные состояния
-
-
-
-
🔤 Темная тема
Добавляйте префикс
🔤 Директива @apply
Используется для извлечения повторяющихся utility классов в отдельные CSS классы.
📸 Лучшие практики
Ресурсы для изучения:
➡️ Вопрос
💬 Новости
🎓 Платформа
Tailwind CSS - это utility-first CSS фреймворк, который позволяет быстро создавать современные веб-интерфейсы, используя готовые классы прямо в HTML.
Основные концепции:
- Размеры:
w-6
(width), h-12
(height)- Отступы:
p-4
(padding), m-2
(margin)- Цвета:
text-blue-500
, bg-gray-100
- Flexbox:
flex
, items-center
, justify-between
- Grid:
grid
, grid-cols-3
, gap-4
-
sm:
- от 640px-
md:
- от 768px-
lg:
- от 1024px-
xl:
- от 1280px-
hover:
- при наведении-
focus:
- при фокусе-
active:
- при клике-
disabled:
- для отключенных элементовДобавляйте префикс
dark:
к классам для стилизации в темной теме.Используется для извлечения повторяющихся utility классов в отдельные CSS классы.
1. Используйте только предопределенные классы Tailwind
2. Избегайте произвольных значений в квадратных скобках (например w-[350px])
3. Группируйте классы по категориям для лучшей читаемости
4. Создавайте компоненты для переиспользуемых элементов
5. Используйте @apply умеренно, только когда это действительно необходимо
Ресурсы для изучения:
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤3
This media is not supported in your browser
VIEW IN TELEGRAM
#css
🔥 Найден отличный инструмент для работы с CSS Grid — CSS Grid Generator. Он позволяет настроить параметры грида и сразу получить готовый CSS-код.
Так что если нужны гриды, но вы все еще путаетесь с ними - сохраняйте)
💬 Новости
🎓 Платформа
Так что если нужны гриды, но вы все еще путаетесь с ними - сохраняйте)
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6❤3🏆1
This media is not supported in your browser
VIEW IN TELEGRAM
#css
♾ Как в css сделать анимацию бесконечно
повторяющейся?
📖 Анимации в CSS создаются с помощью ключевых кадров ( @keyframes ), которые
описывают, как элемент должен изменяться в течение времени.
📖 Чтобы анимация
выполнялась бесконечно, необходимо указать значение infinite в свойстве
animation.
Пример:
В этом примере элемент будет плавно перемещаться вверх и возвращаться на исходное
место каждую секунду.
Параметры анимации можно настраивать, изменяя длительность и
другие свойства, такие как ease-in, ease-out для контроля скорости анимации.
Ресурсы для изучения:
➡️ Вопрос
💬 Новости
🎓 База вопросов
повторяющейся?
описывают, как элемент должен изменяться в течение времени.
выполнялась бесконечно, необходимо указать значение infinite в свойстве
animation.
Пример:
@keyframes example {
from { transform: translateY(0); }
to { transform: translateY(-20px); }
}
.box {
animation: example 1s infinite;
}
В этом примере элемент будет плавно перемещаться вверх и возвращаться на исходное
место каждую секунду.
Параметры анимации можно настраивать, изменяя длительность и
другие свойства, такие как ease-in, ease-out для контроля скорости анимации.
Ресурсы для изучения:
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤3
#css
Как выровнять текст с маркерами в списках?
Каждый верстальщик сталкивается с проблемой: когда текст в маркированном списке переносится на новую строку, выравнивание "плывет" и выглядит неаккуратно.
❌ Проблема
Стандартное поведение при использовании
✅ Решение
Простая CSS-хитрость позволяет сохранить чистое выравнивание:
Этот приём создаёт отрицательный отступ для первой строки текста и компенсирует его отступом слева для всего элемента. В результате вторая и все последующие строки будут аккуратно выровнены по вертикальной линии начала текста первой строки.
🔎 🔎 🔎 🔎 🔄
#️⃣ Вопрос
#️⃣ Новости
#️⃣ База вопросов
Как выровнять текст с маркерами в списках?
Каждый верстальщик сталкивается с проблемой: когда текст в маркированном списке переносится на новую строку, выравнивание "плывет" и выглядит неаккуратно.
Стандартное поведение при использовании
list-style-position: inside
помещает маркеры внутрь блока списка (что хорошо для сохранения границ), но при переносе текста на новую строку он начинает выезжать за визуальную линию маркеров. Результат — неаккуратный и непрофессиональный вид.Простая CSS-хитрость позволяет сохранить чистое выравнивание:
li {
text-indent: -1em;
padding: 0 0 0 1em;
}
Этот приём создаёт отрицательный отступ для первой строки текста и компенсирует его отступом слева для всего элемента. В результате вторая и все последующие строки будут аккуратно выровнены по вертикальной линии начала текста первой строки.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤2🔥1
#css
🚩 Что такое vendor-prefixes в CSS
Vendor-prefixes — это специальные префиксы, которые добавляются к CSS-свойствам для поддержки новых или экспериментальных возможностей в разных браузерах. Каждый браузер реализует свои собственные версии новых свойств, прежде чем они станут стандартом.
Основные префиксы:
-
-
-
-
Примеры:
Зачем они нужны:
- Совместимость: позволяют использовать свойства до их полной поддержки в браузерах
- Тестирование: помогают опробовать экспериментальные возможности
- Корректное отображение: без префиксов свойства могут не работать или отображаться некорректно
Современные практики:
Сегодня необходимость в префиксах снижается — спецификации стали стабильнее, а браузеры быстрее адаптируются. Но в некоторых случаях (например, трансформации и анимации) они всё ещё актуальны.
Для автоматического добавления префиксов используют Autoprefixer — инструмент, который на основе данных о поддержке браузеров сам вставляет нужные префиксы.
🔎 🔎 🔎 🔎 🔄
#️⃣ Вопрос
#️⃣ Новости
#️⃣ База вопросов
Vendor-prefixes — это специальные префиксы, которые добавляются к CSS-свойствам для поддержки новых или экспериментальных возможностей в разных браузерах. Каждый браузер реализует свои собственные версии новых свойств, прежде чем они станут стандартом.
Основные префиксы:
-
-webkit-
— для Chrome и Safari (движок WebKit)-
-moz-
— для Firefox-
-ms-
— для Internet Explorer и Edge-
-o-
— для OperaПримеры:
-webkit-transition: all 0.3s ease; /* WebKit */
-moz-border-radius: 10px; /* Firefox */
-ms-flex: 1; /* Internet Explorer */
-o-animation: fade 1s; /* Opera */
Зачем они нужны:
- Совместимость: позволяют использовать свойства до их полной поддержки в браузерах
- Тестирование: помогают опробовать экспериментальные возможности
- Корректное отображение: без префиксов свойства могут не работать или отображаться некорректно
Современные практики:
Сегодня необходимость в префиксах снижается — спецификации стали стабильнее, а браузеры быстрее адаптируются. Но в некоторых случаях (например, трансформации и анимации) они всё ещё актуальны.
Для автоматического добавления префиксов используют Autoprefixer — инструмент, который на основе данных о поддержке браузеров сам вставляет нужные префиксы.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5❤1
#Css
🚩 Какие техники используются для критического CSS и ленивой загрузки стилей?
✨ Критический CSS
Критический CSS включает стили, необходимые для отображения контента, находящегося "выше сгиба" (above the fold), и встраивается непосредственно в HTML-документ, чтобы ускорить первую отрисовку.
Асинхронная загрузка остальных стилей
После этого оставшиеся стили можно загружать асинхронно, используя атрибуты:
-
-
Это предотвращает блокировку отрисовки основной страницы, а после полной загрузки позволяет сделать стили активными для всех устройств.
✨ Методы ленивой загрузки
Ленивая загрузка стилей позволяет подключать CSS-файлы по мере необходимости:
- С помощью JavaScript для загрузки стилей при скроллинге к определенной секции
- Используя атрибут
Пример использования ленивой загрузки
В этом примере стили загружаются асинхронно, так как
🔎 🔎 🔎 🔎 🔄
#️⃣ Вопрос
#️⃣ Новости
#️⃣ База вопросов
Критический CSS включает стили, необходимые для отображения контента, находящегося "выше сгиба" (above the fold), и встраивается непосредственно в HTML-документ, чтобы ускорить первую отрисовку.
Асинхронная загрузка остальных стилей
После этого оставшиеся стили можно загружать асинхронно, используя атрибуты:
-
rel="preload"
-
media="print"
с последующим изменением на media="all"
Это предотвращает блокировку отрисовки основной страницы, а после полной загрузки позволяет сделать стили активными для всех устройств.
Ленивая загрузка стилей позволяет подключать CSS-файлы по мере необходимости:
- С помощью JavaScript для загрузки стилей при скроллинге к определенной секции
- Используя атрибут
media
для подключения стилей при выполнении заданного условияТакже можно применять сборщики и инструменты, которые автоматически выделяют критические стили:
- Webpack
- Critical
- Penthouse
- CriticalCSS
Пример использования ленивой загрузки
<link rel="stylesheet" href="styles.css" media="print" onload="this.media='all'">
В этом примере стили загружаются асинхронно, так как
media="print"
изначально предотвращает их применение к экранному отображению. После загрузки атрибут изменяется на media="all"
, и стили начинают применяться ко всем типам устройств.Please open Telegram to view this post
VIEW IN TELEGRAM
1👍8❤2
#CSS
🚩 Почему margin: auto не центрирует элемент, а иногда центрирует?
На самом деле это работает только в очень специфических условиях, а в остальных случаях создает больше проблем, чем решает.
Margin: auto работает только тогда, когда браузер может вычислить "лишнее" пространство. Для блочных элементов это работает горизонтально (если есть ширина), но НЕ работает вертикально. Для инлайн элементов не работает вообще.
Типичные ошибки с margin: auto:
Когда margin: auto действительно работает:
📎 Почему margin: auto такой "капризный":
🟣 Нужна явная ширина — без width браузер не знает, что центрировать
🟣 Работает только горизонтально — вертикальное центрирование требует других методов
🟣 Не работает с float — плавающие элементы выходят из нормального потока
🟣 Игнорируется инлайн элементами — нужно сделать display: block
Современные альтернативы намного надежнее:
- Flexbox для одномерного центрирования
- Grid для двумерного позиционирования
- Position + transform для абсолютного центрирования
✅ Современный подход:
- Используйте flexbox/grid вместо margin: auto для центрирования
- Margin: auto оставьте для горизонтального центрирования блоков
- Изучите современные методы layout вместо старых трюков
❌ Избегайте:
- Попыток вертикального центрирования через margin: auto
- Использования без явной ширины элемента
- Применения к инлайн элементам
🔎 🔎 🔎 🔎 🔄
#⃣ Вопрос
#⃣ Новости
#⃣ База вопросов
На самом деле это работает только в очень специфических условиях, а в остальных случаях создает больше проблем, чем решает.
Margin: auto работает только тогда, когда браузер может вычислить "лишнее" пространство. Для блочных элементов это работает горизонтально (если есть ширина), но НЕ работает вертикально. Для инлайн элементов не работает вообще.
Типичные ошибки с margin: auto:
/* Плохо - не сработает */
.center-me {
margin: auto; /* Вертикально НЕ центрирует! */
width: 300px;
height: 200px;
}
/* Плохо - инлайн элементы игнорируют margin: auto */
span {
margin: auto; /* Бесполезно для инлайн */
}
Когда margin: auto действительно работает:
/* Хорошо - центрирование блока горизонтально */
.container {
width: 300px; /* Обязательно указать ширину! */
margin: 0 auto; /* Только горизонтально */
}
/* Современное решение - используйте flexbox */
.parent {
display: flex;
justify-content: center; /* Горизонтально */
align-items: center; /* Вертикально */
}
Современные альтернативы намного надежнее:
- Flexbox для одномерного центрирования
- Grid для двумерного позиционирования
- Position + transform для абсолютного центрирования
- Используйте flexbox/grid вместо margin: auto для центрирования
- Margin: auto оставьте для горизонтального центрирования блоков
- Изучите современные методы layout вместо старых трюков
- Попыток вертикального центрирования через margin: auto
- Использования без явной ширины элемента
- Применения к инлайн элементам
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍10❤1
#CSS
🚩 Можете объяснить концепцию CSS box model?
Box Model — это основа основ CSS. Каждый элемент на веб-странице представляет собой прямоугольную коробку, состоящую из четырех областей. Понимание этой концепции критично для правильной верстки!
Структура Box Model (изнутри наружу):
1️⃣ Content (Контент) — само содержимое элемента
2️⃣ Padding (Внутренние отступы) — пространство между контентом и границей
3️⃣ Border (Граница) — рамка вокруг padding + content
4️⃣ Margin (Внешние отступы) — пространство между элементом и соседними элементами
Реальная ширина элемента = content + padding + border
В примере выше: 300px + 40px + 10px = 350px
🖇 Два режима подсчета размеров:
Content-box (по умолчанию):
- width/height применяются только к контенту
- padding и border добавляются к размерам
Border-box (рекомендуется):
- width/height включают content + padding + border
- Размер остается предсказуемым
🖇 Практические особенности:
Margin схлопывание:
Вертикальные margin соседних элементов объединяются:
Padding и фон:
Padding наследует фоновый цвет элемента, margin — нет:
✅ Лучшие практики:
- Всегда используйте
- Помните про схлопывание margin при вертикальной разметке
- Используйте developer tools для визуализации box model
- Для внутренних отступов — padding, для внешних — margin
❌ Частые ошибки:
- Забывать про border при расчете размеров в content-box
- Использовать margin для внутренних отступов
- Не учитывать схлопывание margin
🔎 🔎 🔎 🔎 🔄
#⃣ Вопрос
#⃣ Новости
#⃣ База вопросов
Box Model — это основа основ CSS. Каждый элемент на веб-странице представляет собой прямоугольную коробку, состоящую из четырех областей. Понимание этой концепции критично для правильной верстки!
Структура Box Model (изнутри наружу):
.box {
width: 300px; /* Ширина контента */
height: 200px; /* Высота контента */
padding: 20px; /* Внутренние отступы */
border: 5px solid red; /* Граница */
margin: 10px; /* Внешние отступы */
}
Реальная ширина элемента = content + padding + border
В примере выше: 300px + 40px + 10px = 350px
Content-box (по умолчанию):
- width/height применяются только к контенту
- padding и border добавляются к размерам
Border-box (рекомендуется):
- width/height включают content + padding + border
- Размер остается предсказуемым
/* Современный подход */
* {
box-sizing: border-box;
}
.box {
width: 300px; /* Общая ширина с padding и border */
padding: 20px;
border: 5px solid red;
}
/* Итоговая ширина = 300px (как и задано) */
Margin схлопывание:
Вертикальные margin соседних элементов объединяются:
.block1 { margin-bottom: 20px; }
.block2 { margin-top: 30px; }
/* Расстояние между ними = 30px (не 50px!) */
Padding и фон:
Padding наследует фоновый цвет элемента, margin — нет:
.box {
background: blue;
padding: 20px; /* Синий фон */
margin: 20px; /* Прозрачно */
}
- Всегда используйте
box-sizing: border-box
- Помните про схлопывание margin при вертикальной разметке
- Используйте developer tools для визуализации box model
- Для внутренних отступов — padding, для внешних — margin
- Забывать про border при расчете размеров в content-box
- Использовать margin для внутренних отступов
- Не учитывать схлопывание margin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🔥2❤1