Свойство overflow-x управляет отображением содержания блочного элемента по горизонтали, если контент целиком не помещается и выходит за область справа или слева от блока.
Значение по умолчанию
visible
Наследуется
Нет
Применяется
К блочным элементам
Анимируется
Нет
Синтаксис
overflow-x: auto | hidden | scroll | visible
Обозначения
Описание
Пример
<тип>
Указывает тип значения.
<размер>
A && B
Значения должны выводиться в указанном порядке.
<размер> && <цвет>
A | B
Указывает, что надо выбрать только одно значение из предложенных (A или B).
normal | small-caps
A || B
Каждое значение может использоваться самостоятельно или совместно с другими в произвольном порядке.
width || count
[ ]
Группирует значения.
[ crop || cross ]
*
Повторять ноль или больше раз.
[,<время>]*
+
Повторять один или больше раз.
<число>+
?
Указанный тип, слово или группа не является обязательным.
inset?
{A, B}
Повторять не менее A, но не более B раз.
<радиус>{1,4}
#
Повторять один или больше раз через запятую.
<время>#
Значения
visible
Отображается всё содержимое элемента, даже за пределами установленной ширины.
hidden
Отображается только область внутри элемента, остальное будет скрыто.
scroll
Всегда добавляется горизонтальная полоса прокрутки.
auto
Горизонтальная полоса прокрутки добавляется только при необходимости.
Песочница
Винни-Пух был всегда не прочь немного подкрепиться, в особенности часов в одиннадцать утра, потому что в это время завтрак уже давно окончился, а обед ещё и не думал начинаться. И, конечно, он страшно обрадовался, увидев, что Кролик достаёт чашки и тарелки.
auto
hidden
scroll
visible
div {
white-space: pre;
overflow-x: {{ playgroundValue }};
}
Пример
<!DOCTYPE html>
<html>
<head>
<meta charset=»utf-8″>
<title>overflow-x</title>
<style>
.layer {
overflow-x: scroll; /* Добавляем полосу прокрутки */
width: 300px; /* Ширина блока */
height: 150px; /* Высота блока */
padding: 5px; /* Поля вокруг текста */
border: solid 1px black; /* Параметры рамки */
white-space: nowrap; /* Запрещаем перенос строк */
}
</style>
</head>
<body>
<div>
<h3>Гетерогенный голубой гель</h3>
<p>Кондуктометрия мягко передает электронный
способ получения независимо от последствий
проникновения метилкарбиола внутрь.
</p>
</div>
</body>
</html>
Результат данного примера показан на рис. 1.
Рис. 1. Применение свойства overflow-x
Объектная модель
Объект.style.overflowX
Спецификация
Спецификация
Статус
CSS Overflow Module Level 3
Рабочий проект
Спецификация
Каждая спецификация проходит несколько стадий одобрения.
Recommendation (Рекомендация) — спецификация одобрена W3C и рекомендована как стандарт.
Candidate Recommendation (Возможная рекомендация) — группа, отвечающая за стандарт, удовлетворена, как он соответствует своим целям, но требуется помощь сообщества разработчиков по реализации стандарта.
Proposed Recommendation (Предлагаемая рекомендация) — на этом этапе документ представлен на рассмотрение Консультативного совета W3C для окончательного утверждения.
Working Draft (Рабочий проект) — более зрелая версия черновика после обсуждения и внесения поправок для рассмотрения сообществом.
Editor’s draft (Редакторский черновик) — черновая версия стандарта после внесения правок редакторами проекта.
Draft (Черновик спецификации) — первая черновая версия стандарта.
Браузеры
5
12
1
9.5
3
3.5
1
1
10
3
Браузеры
В таблице браузеров применяются следующие обозначения.
— свойство полностью поддерживается браузером со всеми допустимыми значениями;
— свойство браузером не воспринимается и игнорируется;
— при работе возможно появление различных ошибок, либо свойство поддерживается лишь частично, например, не все допустимые значения действуют или свойство применяется не ко всем элементам, которые указаны в спецификации.
Число указывает версию браузера, начиная с которой свойство поддерживается.
Форматирование
См. также
overflow
overflow-y
Автор и редакторы
Автор: Влад Мержевич
Последнее изменение: 02.03.2020
Редакторы: Влад Мержевич
Overflow CSS уроки для начинающих академия
❮ Назад
Дальше ❯
Свойство CSS overflow управляет тем, что происходит с содержимым, которое слишком велико для размещения в области.
This text is really long and the height of its container is only 100 pixels. Therefore, a scrollbar is added to help the reader to scroll the content. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi.
Nam liber tempor cum soluta nobis eleifend option congue nihil imperdiet doming id quod mazim placerat facer possim assum. Typi non habent claritatem insitam; est usus legentis in iis qui facit eorum claritatem.
CSS Overflow
Свойство overflow указывает, следует ли вырезать содержимое или добавлять полосы прокрутки, если содержимое элемента слишком велико для размещения в указанной области.
Свойство overflow имеет следующие значения:
visible — По умолчанию. Переполнение не обрезается. Он вырисовывается вне поля элемента
hidden — Переполнение обрезается, а остальное содержимое будет невидимым
scroll — Переполнение обрезается, но для просмотра остальной части содержимого добавляется полоса прокрутки
auto — Если переполнение обрезано, необходимо добавить полосу прокрутки для просмотра оставшейся части содержимого
Примечание: Свойство overflow работает только для элементов блока с заданной высотой.
Примечание: В OS X Lion (на Mac) полосы прокрутки скрыты по умолчанию и отображаются только при использовании (даже если задано «переполнение: прокрутка»).
переполнение: видимый
По умолчанию переполнение является visible, что означает, что оно не обрезается и отображается вне поля элемента:
Свойство переполнения можно использовать, если требуется улучшить управление макетом. Свойство переполнения указывает, что произойдет, если содержимое переполняет поле элемента.
При значении hidden переполнение обрезается, а оставшаяся часть содержимого скрывается:
Свойство переполнения можно использовать, если требуется улучшить управление макетом. Свойство переполнения указывает, что произойдет, если содержимое переполняет поле элемента.
Пример
div { overflow: hidden; }
переполнение: прокрутка
Установка значения scroll , переполнение обрезается и полосы прокрутки добавляется, чтобы прокручивать внутри окна. Обратите внимание, что это добавит полосу прокрутки как горизонтально, так и вертикально (даже если она вам не нужна):
Свойство переполнения можно использовать, если требуется улучшить управление макетом. Свойство переполнения указывает, что произойдет, если содержимое переполняет поле элемента.
Пример
div { overflow: scroll; }
переполнение: Авто
Значение auto аналогично scroll, только при необходимости добавляются полосы прокрутки:
Свойство переполнения можно использовать, если требуется улучшить управление макетом. Свойство переполнения указывает, что произойдет, если содержимое переполняет поле элемента.
Пример
div { overflow: auto; }
overflow-x и overflow-y
Свойства overflow-x и overflow-y указывает, следует ли изменять overflow содержимого только по горизонтали или по вертикали (или оба):
overflow-x Указывает, что делать с левыми/правыми краями содержимого. overflow-y Указывает, что делать с верхними/нижними краями содержимого.
Свойство переполнения можно использовать, если требуется улучшить управление макетом. Свойство переполнения указывает, что произойдет, если содержимое переполняет поле элемента.
Свойство overflow указывает браузеру,
как поступать с содержимым (текст, картинки,
другие блоки), которое вылазит за границы
блока (за его ширину или высоту). Браузер
может скрыть вылезающую часть, добавить полосы
прокрутки или ничего не делать (оставить
как есть — вылезшим за границы).
Сейчас все, что вылезло за границы контейнера
просто обрежется (и по высоте тоже). Обратите
внимание на то, что обрезание по высоте происходит
только тогда, когда она задана явно (в нашем
случае height: 40px). В противном случае
текст расширяет контейнер по высоте — и никакого
обрезания не будет:
При значении scroll полосы прокрутки
будут всегда, даже если ничего не вылазит
(в этом случае они будут неактивными). Сейчас
текст не вылазит ни по ширине, ни по высоте,
но полосы прокрутки все равно есть (неактивные):
свойство word-break, переносящее буквы длинного слова на новую строку
свойство overflow-wrap, переносящее буквы длинного слова на новую строку
свойство overflow-x, которое обрезает вылезающие по горизонтали части
свойство overflow-y, которое обрезает вылезающие по вертикали части
Как создать div блок с прокруткой?
1.
Что такое overflow в CSS?
2.
Свойства и значения overflow
3.
Принудительная установка вертикальной и горизонтальной прокрутки в блоке CSS
4.
Пример div блока с прокруткой
В данной статье мы разберём вопрос создания блока (div) фиксированного размера с возможностью прокрутки по горизонтали и вертикали. Это можно реализовать средствами CSS. За это отвечает свойство overflow.
О полезном свойстве overflow
Свойство overflow отвечает за отображение содержания блочного элемента. Можно применить в том случае, когда контент не помещается полностью и выходит за область блока.
overflow-x — отвечает за отображением содержания блочного элемента по горизонтали. overflow-y — отвечает за отображением содержания блочного элемента по вертикали.
Код CSS
.prokrutka {
overflow: auto; /* свойство для прокрутки по горизонтали. Автоматом, если содержимое больше блока */
}
Свойства и значения overflow
visible — отображается все содержание элемента, даже за пределами установленной ширины. hidden — отображается только область внутри элемента, остальное скрыто. scroll — принудительно добавляется горизонтальная (y) или горизонтальная (x) полоса прокрутки. auto — автоматом добавляется горизонтальная полоса прокрутки, в случае если блок меньше.
Рассмотри пример класса CSS. В width и height устанавливаем нужные нам ширину и высоту блока (за них не будет выходить содержимое блока), а свойством overflow: auto; задаем прокрутку по горизонтали в случае надобности
Код CSS
.prokrutka {
width:150px; /* ширина нашего блока */
height:100px; /* высота нашего блока */
background: #fff; /* цвет фона, белый */
border: 1px solid #C1C1C1; /* размер и цвет границы блока */
overflow: auto; /* свойство для прокрутки по горизонтали. Автоматом, если больше блока */
}
Принудительная установка прокрутки в блоке CSS
Можно также принудительно создать прокрутку по высоте и ширине. Для этого каждой оси: overflow-y: scroll; (вертикаль) overflow-x: scroll; (горизонталь) укажем параметр scroll, принудительная прокрутка.
Код HTML и CSS
.prokrutka {
height:150px; /* высота нашего блока */
background: #fff; /* цвет фона, белый */
border: 1px solid #C1C1C1; /* размер и цвет границы блока */
overflow-x: scroll; /* прокрутка по горизонтали */
overflow-y: scroll; /* прокрутка по вертикали */
}
Пример div блока с прокруткой
Код HTML и CSS
<html>
<head>
<title>Пример работы CSS</title>
<meta http-equiv=Content-Type content="text/html;charset=utf-8">
<style>
.prokrutka {
height: 200px; /* высота нашего блока */
width: 200px; /* ширина нашего блока */
background: #fff; /* цвет фона, белый */
border: 1px solid #C1C1C1; /* размер и цвет границы блока */
overflow-x: scroll; /* прокрутка по горизонтали */
overflow-y: scroll; /* прокрутка по вертикали */
}
</style>
</head>
<body>
<div class="prokrutka">
А тут много-много разного текста и прочей информации. А тут много-много разного текста и прочей информации. А тут много-много разного текста и прочей информации. А тут много-много разного текста и прочей информации. А тут много-много разного текста и прочей информации. А тут много-много разного текста и прочей информации. А тут много-много разного текста и прочей информации. А тут много-много разного текста и прочей информации.
</div>
</body>
</html>
Одно из свойств overflow можно убрать, тогда останется прокрутка только по одной оси, чего вполне достаточно.
Посмотреть работу скрипта на примере ниже.
Демонстрация Скачать исходники
Можно указать принудительную прокрутку только для одной оси. Для этого соответственно уберите строку либо с overflow-x, либо с overflow-y.
Сокращенное свойство CSS overflow задает желаемое поведение для переполнения элемента — т. е. когда содержимое элемента слишком велико, чтобы поместиться в контекст форматирования блока — в обоих направлениях.
Это свойство является сокращением для следующих свойств CSS:
overflow-x
переполнение-у
/* Значения ключевых слов */
переполнение: видимое;
переполнение: скрыто;
перелив: зажим;
переполнение: прокрутка;
переполнение: авто;
переполнение: скрытое видимое;
/* Глобальные значения */
переполнение: наследовать;
переполнение: начальное;
переполнение: вернуться;
переполнение: обратный слой;
переполнение: не установлено;
Свойство overflow указывается как одно или два ключевых слова, выбранных из списка значений ниже. Если указаны два ключевых слова, первое применяется к overflow-x , а второе — к overflow-y . В противном случае оба параметра overflow-x и overflow-y имеют одинаковое значение.
Значения
видимые
Содержимое не обрезается и может отображаться за пределами поля заполнения.
скрытый
Содержимое обрезается, если необходимо, чтобы соответствовать отступу. Полосы прокрутки не предоставляются, и не разрешена поддержка прокрутки пользователем (например, путем перетаскивания или использования колеса прокрутки). Содержимое может прокручиваться программно (например, путем установки значения свойства, такого как scrollLeft или метода scrollTo() ), поэтому элемент по-прежнему является контейнером прокрутки.
зажим
Подобно hidden , содержимое обрезается до поля заполнения элемента. Разница между clip и hidden заключается в том, что ключевое слово clip также запрещает любую прокрутку, включая программную прокрутку. Поле не является контейнером прокрутки и не запускает новый контекст форматирования. Если вы хотите запустить новый контекст форматирования, вы можете использовать для этого display: flow-root .
свиток
Содержимое обрезается, если необходимо, чтобы соответствовать отступу. Браузеры всегда отображают полосы прокрутки независимо от того, обрезано ли какое-либо содержимое, что предотвращает появление или исчезновение полос прокрутки при изменении содержимого. Принтеры могут по-прежнему печатать переполненный контент.
авто
Зависит от пользовательского агента. Если содержимое помещается внутри поля заполнения, оно выглядит так же, как visible , но по-прежнему устанавливает новый контекст форматирования блока. Настольные браузеры предоставляют полосы прокрутки, если содержимое выходит за пределы.
накладка Устаревший
Ведет себя так же, как auto , но с полосами прокрутки, нарисованными поверх содержимого, а не занимающими место.
Расширения Mozilla
-moz-полосы прокрутки-нет Устаревший
Вместо этого использовать переполнение : скрытый .
-moz-полосы прокрутки-горизонтальные Устаревший
Использовать переполнение-x : прокрутить и переполнение-y : скрытый или переполнение: вместо этого прокрутить скрытый .
-moz-полосы прокрутки-вертикальный Устаревший
Использовать overflow-x : скрыто и overflow-y : прокрутить или переполнение: скрыть прокрутку вместо этого.
-moz-скрытый-непрокручиваемый Not for use in new websites.»>
Устаревший
Использовать переполнение : вместо этого обрезать .
Начиная с Firefox 63, -moz-scrollbars-none , -moz-scrollbars-horizontal и -moz-scrollbars-vertical находятся за настройкой предпочтения функции. В about:config установите layout.css.overflow.moz-scrollbars.enabled на true .
Параметры переполнения включают обрезку, отображение полос прокрутки или отображение содержимого, вытекающего из контейнера в окружающую область.
При указании значения, отличного от visible (по умолчанию) или clip , создается новый контекст форматирования блока. Это необходимо по техническим причинам — если плавающий элемент пересекался с прокручиваемым элементом, он принудительно перематывал содержимое после каждого шага прокрутки, что приводило к медленной прокрутке.
Чтобы переполнение имело эффект, блочный контейнер должен иметь заданную высоту ( height или max-height ) или пробел установить на nowrap .
Установка для одной оси значения visible (по умолчанию) при установке для другой оси другого значения приводит к тому, что visible ведет себя как auto .
Свойство JavaScript Element.scrollTop может использоваться для прокрутки элемента HTML, даже если overflow имеет значение hidden .
с включенным JavaScript. Включите JavaScript для просмотра данных.
Связанные свойства CSS: Text-Overflow , Белое пространство , Overflow-X , Overflow-Y , Overflow-Inline , Block , Clip , .
Переполнение CSS и прокручиваемое переполнение отладки
Последнее изменение: , участниками MDN
CSS | overflow-x Property - GeeksforGeeks
< html >
< head >
< style >
div.example1 {
background-color: green;
ширина: 80 пикселей;
переполнение-x: прокрутка;
}
Div. Example2 {
Фоновое колорие: зеленый;
ширина: 80 пикселей;
переполнение-x: скрыто;
}
div.example3 {
background-green;
ширина: 80 пикселей;
переполнение-x: авто;
}
Div. Example4 {
Фоновое колорие: зеленый;
ширина: 80 пикселей;
переполнение-x: видимое;
}
style >
head >
< body >
< h2 >Гики для гиков H2 >
< P>
. , добавить полосу прокрутки или отобразить
переполнение содержимого блочного элемента,
, когда он переполняется по левому и правому краям.
p >
< h3 >overflow-x: scroll: h3 >
< дел.4 Geeksforgeeks Computer Science Portal
Div >
> > > > > > > > > > > > > > > > > > > > > > > >
.
>
< Div Класс = "Пример2" >
Geeksforgeeks Computer Science Portal
Div >
<
. >
< Div Класс = "Пример 3" >
Geeksforgeeks Computer Sciente Portal
Geeksforgeeks Computing Sciente Portal
Geeksforgeeks Computer Science Portal0005
Div >
< H3 > Overflow-X: Visible (AFAUL
< Div Класс = "Пример 4" >
Geeksforgeeks Computer Science Portal
div >
body >
html >
html - Scroll-x поскольку переполнение не работает - вместо y отображается полоса прокрутки
Asked
Изменено
4 года 10 месяцев назад
Просмотрено
1k раз
Я пытаюсь понять, почему я не могу прокручивать горизонтально, чтобы увидеть другие розовые большие пальцы. Я добавил переполнение scroll-x в контейнер thumbs и подумал, что это позволит мне прокручивать по горизонтали, чтобы увидеть другие thumbs; вместо этого он прокручивается только вертикально.
Может кто-нибудь объяснить, почему он не прокручивается по горизонтали? огромное спасибо
Это потому, что ваш #thumbs-wrap имеет фиксированную ширину, и недостаточно держать все дочерние элементы в одной строке или добавить горизонтальную полосу прокрутки. В качестве простого решения вы можете обернуть все дочерние элементы внутри другого 9.0004 div и придайте ему дополнительную ширину. Вот пример:
Элементы HTML обычно переносятся на новые строки, когда больше нет места по горизонтали. Вот почему вы получаете вертикальную полосу прокрутки, даже если вы установите переполнение-х: авто . Вы можете использовать CSS flexbox, чтобы переопределить это поведение без добавления дополнительных элементов. Добавьте следующее в свой CSS:
flex-wrap:nowrap гарантирует, что дочерние элементы останутся на одной строке, а не переносятся на новые строки.
Теперь обычно это может привести к тому, что гибкие элементы сжимаются или увеличиваются, чтобы соответствовать горизонтальному пространству их родительского элемента. Мы можем контролировать это, контролируя их размеры.
Свойство flex с тремя значениями является сокращением для flex: flex-grow flex-shrink flex-basis .
Если для flex-grow и flex-shrink установлено значение 0, гибкие элементы не могут увеличиваться/расширяться или сжиматься, чтобы соответствовать пространству контейнера.
flex-basis:auto гарантирует, что размер flex-элементов точно соответствует размеру, который мы уже указали в нашем CSS.
Вместе эти наборы правил заставляют элементы гибкости ( .thumb ) должны быть выровнены по горизонтали, не перенесены на вторую строку и сохранены в исходном размере. Это заставит горизонтальную полосу прокрутки появиться на элементе #thumbs-wrap .
Вы можете увидеть, как это работает вместе с вашим кодом:
Зарегистрируйтесь, используя адрес электронной почты и пароль
Опубликовать как гость
Электронная почта
Обязательно, но не отображается
Опубликовать как гость
Электронная почта
Требуется, но не отображается
html - Настройка overflow-x: hidden добавляет вертикальную полосу прокрутки
Задавать вопрос
Спросил
Изменено
6 лет, 3 месяца назад
Просмотрено
50k раз
На этот вопрос уже есть ответы здесь :
CSS overflow-x: visible; и переполнение-у: скрыто; вызывает проблему с полосой прокрутки
(9ответы)
Закрыта 6 лет назад.
Когда я указываю overflow-x: hidden для элемента, который переполняется как по горизонтали, так и по вертикали, этот элемент получает вертикальную полосу прокрутки в дополнение к сокрытию содержимого, выходящего за пределы по горизонтали. Я пытался добавить overflow-y: visible и даже просто overflow: visible , но безрезультатно.
Я неправильно понимаю, что делают эти свойства? Я бы подумал, что overflow-x вообще не должны влиять на вертикальное переполнение.
Это происходило в каждом браузере, который я пробовал.
Вот фрагмент, демонстрирующий эффект. Я использую теги
, потому что это простой способ создать переполняющий контент, но, похоже, это происходит с любым тегом.
пред {
высота: 40 пикселей;
ширина: 150 пикселей;
нижняя граница: 50 пикселей; /* Нам нужно это, чтобы они не перекрывались. */
}
#x-скрытый {
переполнение-x: скрыто;
}
#y-видимый {
переполнение-x: скрыто;
переполнение-y: видимое;
}
# видимый {
переполнение: видимое;
переполнение-x: скрыто;
}
<пред>
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Praesent bibendum lorem felis, sit amet sodales nunc gravida eget.
Integer mollis quis magna quis vulputate.
Cras aliquet convallis efficitur.
<пред> Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Praesent bibendum lorem felis, sit amet sodales nunc gravida eget.
Integer mollis quis magna quis vulputate.
Cras aliquet convallis efficitur. <пред> Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Praesent bibendum lorem felis, sit amet sodales nunc gravida eget.
Integer mollis quis magna quis vulputate.
Cras aliquet convallis efficitur. <пред> Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Praesent bibendum lorem felis, sit amet sodales nunc gravida eget.
Integer mollis quis magna quis vulputate.
Cras aliquet convallis efficitur. пред>
Спецификация W3C гласит:
Вычисленные значения 'overflow-x' и 'overflow-y' совпадают с указанными значениями, за исключением того, что некоторые комбинации с 'visible' невозможны: если одно указано как 'visible', а другое - 'scroll ' или 'авто', тогда для 'видимого' установлено значение 'авто'.
Но здесь не упоминается случай, когда overflow-x или overflow-y установлены на hidden , что для меня означает, что эта комбинация действительно возможна.
HTML
CSS
5
Посмотрите этот ответ на связанный вопрос: https://stackoverflow.com/a/6433475/3583023
Это объясняет, почему
el {
переполнение-x: скрыто;
переполнение-y: видимое;
}
отображается как
el {
переполнение-x: скрыто;
переполнение-у: авто;
}
, который обычно выглядит так же, как
el {
переполнение-x: скрыто;
переполнение-у: прокрутка;
}
потому что auto значение overflow-y равно scroll в большинстве браузеров.
Итак, для достижения этого эффекта мы не можем использовать свойства overflow-x/overflow-y . Я экспериментировал со свойством clip в качестве потенциальной альтернативы, но пока безуспешно: http://jsfiddle. net/qvEq5/
1
Попробуйте установить свой рост. Либо сделай как 100%, либо авто
проверьте это
jsfiddle
height: auto;
2
Всего час назад у меня была аналогичная проблема, за исключением того, что проблема возникла, когда я указал значение переполнения как auto . Я не использовал overflow-x или overflow-y , мне просто нужно было полностью содержать два моих списка, которые плавали на противоположных концах.
Мне помогло то, что я изменил значение overflow на hidden . Попробуй это. Я установил максимальную ширину на 100% и вместо указания высоты я просто использовал overflow: hidden .
Следует сохранить элемент шириной 100 пикселей и позволить ему расширяться по вертикали в зависимости от его содержимого (без полос прокрутки).
Во-первых, эта скрипка показывает проблему, которую вы описываете.
Пока не знаю как это обойти, но похоже спецификация намекает вот на это:
Вычисленные значения ‘ overflow-x ’ и ‘ overflow-y ’ совпадают с
их указанные значения, , за исключением некоторых комбинаций с «видимыми»
невозможны : если один указан как «видимый», а другой
«прокрутка» или «авто», тогда «видимый» устанавливается на «авто».
Просто используйте переполнение: скрыто в оболочке div с ограничениями по размеру. Извините, что я сегодня немного тороплюсь с форматированием.
<дел>
<дел>
Вы можете использовать свойство переполнения, если хотите лучше контролировать макет. Значение по умолчанию видно.
Вы можете использовать свойство переполнения, если хотите лучше контролировать макет. Значение по умолчанию видно.
Вы можете использовать свойство переполнения, если хотите лучше контролировать макет. Значение по умолчанию видно.
Вы можете использовать свойство переполнения, если хотите лучше контролировать макет. Значение по умолчанию видно.
тело>
Посмотреть это в действии можно здесь: http://jsfiddle.net/4PZC9/
Попробуйте установить свойство отображения? Объявление переполнения работает с элементами блочного уровня!
4
Может вы что-то не так поняли, я не понял вопроса... или проблема не в настройках переполнения.
Переполнение: auto добавит полосу прокрутки только в случае необходимости (содержимое больше контейнера). Òverflow: visible добавит полосу прокрутки. Òverflow: hidden НЕ добавит полосу прокрутки.
Я понимаю, что вы хотите, чтобы x-контент был скрыт, поэтому overflow-x: hidden , но из вашего вопроса мне кажется, что вертикальная полоса прокрутки не должна видеть вертикально переполненный контент.
Возможно, проблема в том, что для контейнера задана фиксированная высота (или максимальная высота), а содержимое больше. Удалите высоту (или максимальную высоту), и вы избежите вертикальной полосы прокрутки.
...или, как я уже сказал, просто не понял, что такое желаемый эффект.
Попробуйте это,
высота: авто;
переполнение: скрыто;
Привет.
1
Читаю ваш вопрос... Не вижу проблем...
Когда я указываю overflow-x:hidden; на элемент добавляется вертикальная полоса прокрутки.
Если он переполняется по высоте (как вы только что сказали), то это вполне нормально.
Я попытался добавить overflow-y:visible; и даже просто overflow:visible, безрезультатно.
Ну... Это нормально, раз вы говорите показывать вертикальную полосу прокрутки, которая уже есть.
Как сказал кулуар: X = горизонтальный; Y = вертикально.
2
Очень активный вопрос . Заработайте 10 репутации (не считая бонуса ассоциации), чтобы ответить на этот вопрос. Требование к репутации помогает защитить этот вопрос от спама и отсутствия ответа.
переполнение | CSS-трюки - CSS-трюки
9Свойство 0004 overflow управляет тем, что происходит с содержимым, которое выходит за его границы: представьте себе div , в котором вы явно установили ширину 200 пикселей, но содержит изображение шириной 300 пикселей. Это изображение будет торчать из div и будет видимым по умолчанию. Принимая во внимание, что если вы установите значение overflow на hidden , изображение будет обрезано на 200px.
visible : содержимое не обрезается, когда оно выходит за пределы своего поля. Это значение свойства по умолчанию
hidden : переполняющее содержимое будет скрыто.
прокрутка : аналогично скрытому, за исключением того, что пользователи смогут прокручивать скрытый контент.
клип : содержимое обрезается, когда оно выходит за пределы своего блока. Это можно использовать с overflow-clip-margin , чтобы установить отсеченную область.
auto : если содержимое выходит за пределы своего поля, то это содержимое будет скрыто, а полоса прокрутки должна быть видна для пользователей, чтобы прочитать остальную часть содержимого.
начальный : использует значение по умолчанию, которое видимое
наследование : устанавливает переполнение на значение его родительского элемента.
Помните, что текст будет естественным образом переноситься в конце элемента (если не будет изменен пробел), поэтому текст редко будет причиной переполнения. Если не задана высота, текст также будет увеличивать высоту элемента. Переполнение чаще возникает, когда явно заданы ширина и высота, и было бы нежелательно, чтобы какой-либо контент выплескивался наружу, или когда прокрутки явно избегают.
visible
Если вы вообще не устанавливаете свойство переполнения, значение по умолчанию отображается. Таким образом, в общем случае нет причин явно устанавливать для этого свойства значение visible, если только вы не переопределяете его установку в другом месте.
Здесь важно помнить, что даже несмотря на то, что содержимое видно за пределами поля, оно не влияет на поток страницы. Например:
Как правило, вы все равно не должны устанавливать статическую высоту для блоков с веб-текстом, поэтому она не должна появляться.
скрытый
Противоположность видимому по умолчанию скрытому . Это буквально скрывает любой контент, выходящий за рамки коробки.
Это особенно полезно при использовании динамического содержимого и возможности переполнения, вызывающего серьезные проблемы с макетом. Однако имейте в виду, что контент, скрытый таким образом, совершенно недоступен (за исключением просмотра источника). Так, например, у пользователя установлен размер шрифта по умолчанию больше, чем вы ожидаете, вы можете вытолкнуть текст за пределы поля и полностью скрыть его от их взгляда.
scroll
Установка значения переполнения поля для прокрутки скроет содержимое от рендеринга вне поля, но предложит полосы прокрутки для прокрутки внутренней части поля для просмотра содержимого.
Примечательно, что с этим значением вы получаете ОБА горизонтальную и вертикальную полосы прокрутки, несмотря ни на что, даже если содержимое требует только одного или другого.
Прокрутка импульса iOS может быть включена для этого значения с помощью -webkit-overflow-scrolling .
Примечание: В OS X Lion, когда полосы прокрутки настроены на отображение только при использовании, scroll ведет себя больше как auto , в котором будут отображаться только необходимые полосы прокрутки.
auto
Авто переполнение очень похоже на значение прокрутки, только решает проблему получения полос прокрутки, когда они вам не нужны. Полосы прокрутки будут отображаться только в том случае, если есть контент, который фактически выходит за пределы элемента.
переполнение-x и переполнение-y
Также можно управлять переполнением содержимого по горизонтали или вертикали с помощью свойств overflow-x и overflow-y . Например, в приведенной ниже демонстрации горизонтальное переполнение можно прокручивать, в то время как текст, выходящий за пределы высоты поля, скрыт:
Как ни странно, одним из наиболее популярных способов использования установки переполнения является очистка плавающих значений. Установка переполнения не очищает поплавок на элемент, он самоочищается . Это означает, что элемент с переполнением (любое значение, кроме visible ) будет расширяться настолько, насколько это необходимо, чтобы охватить дочерние элементы внутри, которые плавают (вместо схлопывания), предполагая, что высота не объявлена. Вот так:
Лучшим методом очистки с плавающей запятой является clearfix, так как он не требует от вас изменения свойства переполнения ненужным вам способом.
Генерация контекста форматирования блока
Интересно отметить, что переполнение также создаст новый контекст форматирования блока, который полезен, если мы хотим выровнять блочный элемент рядом с плавающим. В приведенном ниже примере мы показываем, как несколько абзацев будут взаимодействовать с плавающим изображением по умолчанию, а затем мы используем overflow: hidden для выравнивания текста в своем собственном поле:
Это взято из отличного поста Николь Салливан, который был чтобы вдохновить медиа-объект.
Можно ли стилизовать полосы прокрутки с помощью CSS?
Раньше вы могли стилизовать полосы прокрутки в IE (v5. 5?), но не более того. Теперь вы снова можете стилизовать их в браузерах WebKit. Если вам нужны настраиваемые полосы прокрутки для разных браузеров, обратите внимание на JavaScript.
Если к элементу необходимо добавить полосы прокрутки для учета значения переполнения, Firefox помещает их за пределы элемента, сохраняя видимую ширину/высоту заявленной. IE помещает полосы прокрутки внутрь, сохраняя общую ширину/высоту заявленной.
Демонстрация
Демонстрации для этой статьи взяты со страницы с образцами.
Browser Support
Desktop
Chrome
Firefox
IE
Edge
Safari
90
81
11
90
16.0
Мобильный телефон/планшет
Android Chrome
Android Firefox
Android
iOS Safari
105
104
105
16. 0
More information
Understanding the Humble Clearfix
Overflow: a secret benefit
Overflow on MDN
Overflow on W3C
Finding/fixing unintended body overflow
плавать
Вы хотите переполнение: авто, а не переполнение: прокрутите
CSS и HTML,
4 января 2021 г., 4 минуты чтения
Время от времени веб-разработчик, использующий Mac, обнаруживает, что на других платформах их красивый дизайн замусорен полосами прокрутки. Либо потому, что кто-то указывает им на это, либо потому, что они подключают мышь к своему Mac, из-за чего появляются полосы прокрутки.
Часто в этом обвиняют MacOS, скрывающую полосы прокрутки по умолчанию (я знаю, что делал это в прошлом). Но на самом деле виноваты разработчики, использующие overflow: scroll когда они означают overflow: auto .
Разница
Может показаться естественным добавить переполнение : прокрутите до всего, что вы хотите прокручивать, но на самом деле это говорит о том, что всегда показывает полосу прокрутки .
Однако в большинстве ситуаций вы, вероятно, хотите показывать полосу прокрутки только в том случае, если она нужна , и скрывать ее, когда нет (вы знаете, как Mac). Для этого вам нужно overflow: auto , что позволяет браузеру автоматически определить, нужна ли полоса прокрутки — или нет.
Итак, вкратце: переполнение: прокрутка : Всегда показывать полосу прокрутки. переполнение: авто : При необходимости показывать полосу прокрутки.
Обнаружение проблемы
Отключенные полосы прокрутки легко заметить в Windows и Linux, потому что на странице будут видны довольно уродливые неактивные полосы прокрутки, например, здесь, в создателе сообщений LinkedIn:
Одиночный прокрутка бар - это не самое худшее, что может случиться. Если вы добавите изображение в сообщение LinkedIn, вам будет показано не одно, а 9 изображений.0051 две неактивные полосы прокрутки рядом друг с другом.
Да, если у вас есть несколько элементов с overflow:scroll, полосы прокрутки будут просто складываться. Угу.
Отображение полос прокрутки на Mac
Windows и Linux всегда отображают полосы прокрутки, но если вы работаете на Mac, вам нужно изменить настройку, чтобы они отображались. Перейдите в «Системные настройки», затем «Основные» и переключите «Показывать полосы прокрутки» на «Всегда».
… но тогда у вас останутся уродливые полосы прокрутки, как и у всех нас, которые вам, вероятно, не нужны. Есть причина, по которой Mac их прячет!
Эмуляция полос прокрутки
Что, если бы было проще обнаруживать видимые полосы прокрутки, не включая их в вашей операционной системе? Я написал небольшой букмарклет, который делает именно это.
Он отображает полосы прокрутки на вашей странице так же, как ваш Mac, если он настроен на постоянное отображение полос прокрутки.
Эмуляция полос прокрутки на Mac Букмарклеты
Показать все переполнения: полосы прокрутки прокрутки Показать ненужные полосы прокрутки0004 overflow: scroll , а другой показывает полосы прокрутки только тогда, когда они не нужны: элементы, которые не прокручиваются, но к которым все еще применяется overflow: scroll . Перетащите букмарклеты на панель закладок, чтобы использовать их!
Полосы прокрутки выглядят на 100 % так же, как полосы прокрутки macOS для горизонтальных, вертикальных и комбинированных полос прокрутки, а также поддерживают как темный, так и светлый режим, поэтому они идеально отражают то, что вы увидели бы. Таким образом, вы можете быстро проверить одну страницу на наличие полос прокрутки и двигаться дальше.
Букмарклет доступен в Polypane в качестве инструмента отладки.
Попробуйте на этой странице демонстрацию ниже:
Если вы используете Mac, это поле будет пустым, пока вы не щелкнете по одному из букмарклетов. (Это уже выглядит плохо для нас в Windows и Linux!)
Код
Код в букмарклете перебирает все элементы на странице, проверяет их ComputedStyle и добавляет классы к элементу, где переполнение, переполнение-x или overflow-y имеют значение «прокрутка».
Затем он вводит некоторые стили CSS, чтобы соответствовать этим классам для полос прокрутки: есть рендеринг только для вертикальной полосы прокрутки, только для горизонтальной полосы прокрутки, а также для вертикальной и горизонтальной полос прокрутки вместе, с использованием ::before и ::after псевдоэлементы.
Если вы хотите проверить код и поиграть с ним, я создал этот CodePen:
См. Обнаружение переполнения прокрутки Pen Килианом Валкхофом (@Kilian) на CodePen.
Есть два рефакторинга, которые я хочу сделать в ожидании поддержки браузера.