переполнение
Свойство overflow CSS сокращенного свойства задаёт желаемое поведение, когда содержимое не помещается в области отступа элемента (переполнение) в горизонтальном и/или вертикальном направлении.
Попробуйте
Составные свойства
Это свойство является сокращением следующих свойств CSS:
Синтаксис
/* Keyword values */ overflow: visible; overflow: hidden; overflow: clip; overflow: scroll; overflow: auto; overflow: hidden visible; /* Global values */ overflow: inherit; overflow: initial; overflow: revert; overflow: revert-layer; overflow: unset;
Свойство overflow задаётся одним или двумя <overflow> ключевыми значениями. Если указано только одно ключевое слово, то и overflow-x и overflow-y устанавливаются в одинаковое значение. Если указаны два ключевых слова, то первое значение применяется к overflow-x в горизонтальном направлении, а второе — к overflow-y в вертикальном направлении.
Значения
visible-
Содержимое переполнения не обрезается и может быть видимым за пределами области отступа элемента. Блок элемента не является контейнером прокрутки. Это значение по умолчанию для свойства
overflow. -
Содержимое переполнения обрезается по границе отступа элемента. Нет полос прокрутки, и обрезаемое содержимое невидимо (т. е. обрезаемое содержимое скрыто), но содержимое всё ещё существует. Пользовательские агенты не добавляют полосы прокрутки и также не позволяют пользователям просматривать содержимое за пределами обрезаемой области, например, путем перетаскивания на сенсорном экране или использования колесика мыши. Содержимое может быть прокручено программно (например, по ссылке на якорный текст, путем перехода на скрытый, но фокусируемый элемент или путем задания значения свойства
scrollLeftили методаscrollTo()), в этом случае блок элемента является контейнером прокрутки. clip-
Содержимое переполнения обрезается по краю обрезки переполнения элемента, который определяется свойством
overflow-clip-margin. В результате содержимое переполняет область отступа элемента на значение<length>свойстваoverflow-clip-marginили на значение0px, если оно не задано. Содержимое переполнения за пределами обрезаемой области невидимо, пользовательские агенты не добавляют полосу прокрутки, и программно прокручивать его также нельзя. Новый контекст форматирования не создаётся. Для создания контекста форматирования используйтеoverflow: clipвместе сdisplay: flow-root. Блок элемента не является контейнером прокрутки. scroll-
Содержимое переполнения обрезается по границе отступа элемента, и содержимое переполнения можно прокрутить в поле зрения с помощью полос прокрутки. Пользовательские агенты отображают полосы прокрутки независимо от того, переполняется ли содержимое или нет, поэтому в горизонтальном и вертикальном направлениях, если значение относится к обоим направлениям. Использование этого ключевого слова, следовательно, может предотвратить появление и исчезновение полос прокрутки при изменении содержимого. Печатающие устройства всё же могут печатать переполненное содержимое. Блок элемента является контейнером прокрутки.
auto-
Содержимое переполнения обрезается по границе отступа элемента, и содержимое переполнения можно прокрутить в поле зрения с помощью полос прокрутки. В отличие от
scroll, пользовательские агенты отображают полосы прокрутки только если содержимое переполняет границы. Если содержимое помещается в область отступа элемента, оно выглядит так же, как и приvisible, но всё ещё создаёт новый контекст форматирования. Блок элемента является контейнером прокрутки.
Примечание: Ключевое слово overlay — это устаревшее псевдоним для auto. При overlay, полосы прокрутки выводятся поверх содержимого, а не занимают место.
Описание
Варианты переполнения включают скрытие переполненного содержимого, включение полос прокрутки для просмотра переполненного содержимого или отображение содержимого, выходящего за пределы области отступа элемента в окружающую область, и их комбинации.
Следует учитывать следующие нюансы при использовании различных ключевых слов для overflow:
- Указание значения, отличного от
visible(значение по умолчанию) илиclipдляoverflowсоздаёт новый контекст форматирования блоков. Это необходимо по техническим причинам; если плавающая область пересекается с прокручиваемым элементом, содержимое будет принудительно перестраиваться после каждого шага прокрутки, что приведёт к медленной прокрутке. - Для установки
overflowдля достижения желаемого эффекта, блочный элемент должен иметь заданную высоту (heightилиmax-height) если переполнение вертикальное, заданную ширину (widthилиmax-width) если переполнение горизонтальное, заданную величину блочного размера ((block-sizeилиmax-block-size) если переполнение в направлении блочного размера, или заданную величину размера по линии ((inline-sizeилиmax-inline-size) илиwhite-spaceзначениеnowrapесли переполнение в направлении по линии. - Установка переполнения на
visibleв одном направлении (т. е.overflow-xилиoverflow-y) при отсутствии установкиvisibleилиclipв другом направлении приводит к тому, что значениеvisibleведёт себя какauto. - Установка переполнения на
clipв одном направлении при отсутствии установкиvisibleилиclipв другом направлении приводит к тому, что значениеclipведёт себя какhidden. - Свойство JavaScript
Element.scrollTopможет использоваться для прокрутки содержимого в контейнере прокрутки, за исключением случаев, когдаoverflowустановлено вclip.
Формальное определение
| Начальное значение | visible |
|---|---|
| Применяется к | Блочным контейнерам, контейнерам гибкой компоновки и контейнерам сетки |
| Наследуется | нет |
| Вычисленное значение | как каждое из свойств сокращения:
|
| Тип анимации | дискретный |
Формальный синтаксис
Удобство доступа
Область с прокручиваемым содержимым не может быть прокручена пользователем только с клавиатурой, за исключением пользователей Firefox (в котором контейнер по умолчанию фокусируется с помощью клавиатуры).
Чтобы позволить пользователям только с клавиатурой, не использующим Firefox, прокручивать контейнер, вам необходимо назначить ему tabindex с помощью tabindex="0". К сожалению, когда средство чтения с экрана сталкивается с этой остановкой табуляции, оно не имеет контекста, что это такое, и средство чтения с экрана, вероятно, объявит всё его содержимое. Назначение соответствующего роли WAI-ARIA (role="region", например) и удобочитаемого имени (через aria-label или aria-labelledby) может это смягчить.
Примеры
Демонстрация результатов различных ключевых слов переполнения
HTML
<div>
<code>visible</code>
<p class="visible">
Maya Angelou: "I've learned that people will forget what you said, people
will forget what you did, but people will never forget how you made them
feel."
</p>
</div>
<div>
<code>hidden</code>
<p class="hidden">
Maya Angelou: "I've learned that people will forget what you said, people
will forget what you did, but people will never forget how you made them
feel."
</p>
</div>
<div>
<code>clip</code>
<p class="clip">
Maya Angelou: "I've learned that people will forget what you said, people
will forget what you did, but people will never forget how you made them
feel."
</p>
</div>
<div>
<code>scroll</code>
<p class="scroll">
Maya Angelou: "I've learned that people will forget what you said, people
will forget what you did, but people will never forget how you made them
feel."
</p>
</div>
<div>
<code>auto</code>
<p class="auto">
Maya Angelou: "I've learned that people will forget what you said, people
will forget what you did, but people will never forget how you made them
feel."
</p>
</div>
<div>
<code>overlay</code>
<p class="overlay">
Maya Angelou: "I've learned that people will forget what you said, people
will forget what you did, but people will never forget how you made them
feel."
</p>
</div>
CSS
p.visible {
overflow: visible;
}
p.hidden {
overflow: hidden;
}
p.clip {
overflow: clip;
overflow-clip-margin: 1em;
}
p.scroll {
overflow: scroll;
}
p.auto {
overflow: auto;
}
p.overlay {
overflow: overlay;
}
Результат
Спецификации
| Спецификация |
|---|
| Модуль CSS Overflow Уровень 3 # propdef-overflow |
Совместимость с браузерами
| Десктоп | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | |
overflow |
1 | 12 | 1После Firefox 3.6, свойствоoverflow корректно применяется к элементам группировки таблиц (<thead>, <tbody>, <tfoot>). |
7 | 1 | 18 | 4 | 14 | 1 | 1.0 | 4.4 |
auto |
115 | 12 | 1112 | 1515 | 3≤13.1 | 18100 | 4112 | 1469 | 2≤13.4 | 1.019.0 | 4.4100 |
clip |
90 | 90 | 811.5–81 | 76 | 16 | 90 | 814–81 | 64 | 16 | 15.0 | 90 |
hidden |
1 | 12 | 1 | 15 | 3 | 18 | 4 | 14 | 2 | 1.0 | 4.4 |
multiple_keywords |
68 | 79 | 61 | 55 | 13.1 | 68 | 61 | 48 | 13.4 | 10.0 | 68 |
scroll |
1 | 12 | 1 | 15 | 3 | 18 | 4 | 14 | 2 | 1.0 | 4.4 |
visible |
1 | 12 | 1 | 15 | 3 | 18 | 4 | 14 | 2 | 1.0 | 4.4 |
См. также
-
overflow-x,overflow-y -
overflow-block,overflow-clip-margin,overflow-inline -
clip,display,text-overflow,white-space - CSS overflow
- Области прокрутки только с клавиатурой на adrianroselli.com (2022)
© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/CSS/overflow