Overflow в CSS
Вы можете задать боксу фиксированный размер. А если контент выше или шире этого бокса? overflow решает: лишнее вылезет наружу, обрежется или станет прокручиваемым.
Ключевые слова одним взглядом
📊 Частые значения overflow
| Значение | Повседневный смысл |
|---|---|
visible (по умолчанию) |
Лишний контент может выйти за бокс |
hidden |
Лишнее обрезается; без полос прокрутки |
scroll |
Полосы показываются (часто даже когда не нужны) |
auto |
Полосы появляются только при переполнении |
По умолчанию: контент может вылезать
С overflow: visible (по умолчанию) длинный контент может рисоваться за краями бокса.
Видимый overflow (по умолчанию)
css.box-visible {
width: 220px;
height: 80px;
overflow: visible;
border: 1px solid #94a3b8;
background-color: #f8fafc;
}
Обрезать через hidden
overflow: hidden отрезает всё, что не помещается. Удобно для чистых краёв — но пользователь не прокрутит остальное.
Hidden обрезает переполнение
css.box-hidden {
width: 220px;
height: 80px;
overflow: hidden;
border: 1px solid #0f766e;
background-color: #ecfdf5;
}
Всегда полосы со scroll
overflow: scroll делает бокс прокручиваемым и обычно резервирует место под полосы, даже когда контент помещается.
Всегда scroll
css.box-scroll {
width: 220px;
height: 80px;
overflow: scroll;
border: 1px solid #7c3aed;
background-color: #f5f3ff;
}
Auto — прокрутка только когда нужно
overflow: auto — спокойный повседневный выбор для панелей: полосы появляются при переполнении и часто не мешают, когда всё помещается.
Auto когда нужно
css.box-auto {
width: 220px;
height: 80px;
overflow: auto;
border: 1px solid #b45309;
background-color: #fffbeb;
}
Управлять одной осью
Используйте overflow-x и overflow-y, когда горизонтальное и вертикальное поведение должны отличаться — например, вертикальная прокрутка и обрезка бокового вылезания.
Вертикальная прокрутка, горизонтальная обрезка
css.panel-axes {
width: 240px;
height: 100px;
overflow-x: hidden;
overflow-y: auto;
border: 1px solid #334155;
background-color: #f1f5f9;
}
Практичная привычка для панели
Дайте боксу реальную высоту (или max-height), затем выберите auto для читаемых прокручиваемых областей.
Прокручиваемая панель заметок
css.note-panel {
width: 100%;
max-height: 160px;
overflow: auto;
padding: 1rem;
border: 1px solid #cbd5e1;
background-color: #ffffff;
box-sizing: border-box;
}
Попробуйте сами
- Сделайте бокс с
widthи короткойheight, вставьте несколько абзацев. - Переключайте
overflowмеждуvisible,hidden,scrollиauto. - Поставьте
overflow-x: hiddenиoverflow-y: autoна широкую строку текста. - Соберите
.note-panelсmax-heightи смотрите полосы только когда нужно. - Без ограничения высоты (или max-height) overflow часто нечем ограничивать.
Частые ошибки
- Ждать эффект overflow без ограниченной высоты или ширины
- Ставить
scrollвезде, когдаautoспокойнее - Путать overflow (переполнение бокса) с text-overflow (многоточие у текста — позже)
- Обрезать через
hiddenи забывать, что пользователю может понадобиться остальное - Думать, что overflow меняет арифметику box-sizing (нет)
Кратко
- Overflow управляет вылезанием, обрезкой и прокруткой, когда контент больше бокса
- По умолчанию
visible;hiddenобрезает;scrollдаёт полосы;autoкогда нужно - Обычно нужен ограниченный размер (height / max-height / width), чтобы увидеть эффект
overflow-xиoverflow-yразделяют оси- Для многих панелей
overflow: auto— спокойная привычка
🧠 Проверьте Свои Знания
Проверьте Свои Знания
Бросьте себе вызов с помощью этой интерактивной викторины и узнайте, насколько хорошо вы понимаете тему
📝 Инструкции
- Внимательно прочитайте каждый вопрос
- Выберите лучший ответ на каждый вопрос
- Вы можете пересдавать тест столько раз, сколько захотите
- Ваш прогресс будет показан вверху