HTML свойства тега textarea — студия Палыча
Textarea — один из важных элементов полей для ввода, особенно для форм обратной связи при создании сайтов. Поэтому он рождает множество проблем для верстальщиков и программистов. Есть несколько особенных HTML свойств textarea. О них я и хочу поведать.
Размеры textarea
Начнем с первых и важных свойства textarea, а именно как задать размеры (высоту и ширину) текстового поля. Для этого есть два варианта. В первом варианте задаем cols (количество символов в строке) и rows (количество строк).
<textarea cols="30" rows="5"></textarea>
Или указывать размер в CSS свойствах:
textarea {
width : 450px;
height : 120px;
}
В первом случае мы точно знаем, сколько символов поместится в форме, во втором случае будет проблема, так как иногда буквы будут обрезаны.
Замещающий текст в HTML5
Существует новый атрибут в качестве части формы HTML5, называется
<textarea placeholder="Замещающий текст" cols="30" rows="5"></textarea>
Работает только в современных браузерах. Есть решение для всех браузеров, оно, конечно, не будет таким красивым. Для работы необходим JS.
<textarea cols="20" onblur="if(this.value=='') this.value='поиск...';" onfocus="if(this.value=='поиск...') this.value='';">поиск...</textarea>
Обратите внимание, что значение должно быть одинаковым, иначе не будет работать.
Как убрать свечение у textarea?
Все webkit-браузеры, Firefox 3.6, все 10-е оперы навешивают голубую рамку (каемку) вокруг textarea, когда они находятся в фокусе. Вы можете удалить ее из браузера следующим образом:
textarea {
outline : none;
}
Помните, что свечение textarea и полей для ввода текста является стандартом и важным элементом юзабилити сайта.
Как удалить маркер изменения размера у textarea?
Webkit-браузеры предлагают маленький элемент пользовательского интерфейса в правом нижнем углу textarea, при помощи которого пользователи могут изменить размеры текстового поля. Если по каким-либо причинам вы хотите удалить, то используем CSS:
textarea {
resize : none;
}
Nowrap — убрать переносы
Чтобы текст автоматически не переносился, в CSS можно использовать #whatever { white-space: nowrap}
<textarea wrap="off" cols="30" rows="5"></textarea>
Как убрать полосу прокрутки textarea в Internet Explorer?
IE старых версий ставят вертикальную прокрутку по умолчанию на всех textarea. Вы можете спрятать его через
textarea {
overflow : auto;
}
Источник: Textarea tricks
overflow-block — CSS | MDN
CSS свойство overflow-block
устанавливает, что будет отображаться, когда содержимое переполняет начальные и конечные края блока. Это может быть ничего, полоса прокрутки или содержимое переполнения.
Свойтсво overflow-block
отображается на overflow-y
или overflow-x
в зависимости от режима записи документа.
overflow-block: visible;
overflow-block: hidden;
overflow-block: scroll;
overflow-block: auto;
overflow-block: inherit;
overflow-block: initial;
overflow-block: unset;
Свойство overflow-block
указывается как одно ключевое слово, выбранное из списка значений ниже.
Значения
visible
- Содержимое не обрезается и может отображаться за пределами начального и конечного краев блока отступа.
hidden
- При необходимости содержимое обрезается, чтобы соответствовать размеру блока в поле заполнения. Полосы прокрутки отсутствуют.
scroll
- При необходимости содержимое обрезается, чтобы поместиться в размер блока в поле заполнения. Браузеры отображают полосы прокрутки вне зависимости от того, вырезано ли содержимое. (Это предотвращает появление или исчезновение полос прокрутки при изменении содержимого.) Принтеры могут по-прежнему печатать переполненное содержимое.
auto
- Зависит от пользовательского агента. Если содержимое помещается в поле дополнения, оно выглядит так же, как visible, но все же устанавливает новый контекст форматирования блока. Настольные браузеры устанавливают полосы прокрутки, если содержимое переполняется.
Формат синтаксиса
visible | hidden | clip | scroll | auto
HTML
<ul> <li><code>overflow-block:hidden</code> — скрывает текст за пределами поля <div> Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. </div> </li> <li><code>overflow-block:scroll</code> — всегда добавляет полосу прокрутки <div> Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. </div> </li> <li><code>overflow-block:visible</code> — отображает текст вне поля, если это необходимо <div> Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. </div> </li> <li><code>overflow-block:auto</code> — в большинстве браузеров, что эквивалентно <code>scroll</code> <div> Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. </div> </li> </ul>
CSS
#div1,
#div2,
#div3,
#div4 {
border: 1px solid black;
width: 250px;
height: 100px;
}
#div1 { overflow-block: hidden; margin-bottom: 12px;}
#div2 { overflow-block: scroll; margin-bottom: 12px;}
#div3 { overflow-block: visible; margin-bottom: 120px;}
#div4 { overflow-block: auto; margin-bottom: 120px;}
Результат
BCD tables only load in the browser
css — Скрыть вертикальную полосу прокрутки, но все еще прокручивать для Firefox / IE / Edge
Я знаю, что здесь многое было рассмотрено, но ни одно из решений, похоже, не работает для меня.
Note: I don't want to mess with padding/margins
Я могу заставить его исчезнуть, но я теряю функциональность прокрутки. Вот некоторые из вещей, которые я пробовал, и я могу забыть некоторые из них, поскольку я прошел через очень много итераций.
::-webkit-scrollbar { width: 0px; }
overflow-y: scroll;
overflow-x: hidden;
-ms-overflow-style: none;
overflow: -moz-hidden-scrollable;
Также было несколько других, но, как я уже сказал, ничего не работает. Я видел некоторые распространенные решения, заключающиеся в том, что замена отступа на faux исчезла с полосы прокрутки, но я не хочу этого делать, опасаясь, что это может нарушить стиль на некоторых устройствах.
Я также видел несколько предложений сделать чистый javascript, вычитая ширину дочернего компонента из ширины родительского компонента или что-то подобное, но это был очень похожий подход, только более динамичный, который я тоже не хочу делать.
Я пытаюсь достичь этого с помощью чистого CSS. Идеи ?
Текущий код
.rec-left--body {
padding: 0px 20px;
.form-content {
overflow-y: scroll; // Chrome << removes scrollbar
overflow-x: hidden; // Chrome << removes scrollbar
-ms-overflow-style: none; // IE 10+ << removes scrollbar
overflow: -moz-hidden-scrollable; // Firefox << removes scrollbar
height: 48vh;
margin: 10px 0px;
padding: 0 15px;
@media (min-width: $screen-sm) {
height: 325px;
padding: 0 10px;
}
.form-content::-webkit-scrollbar {
width: 0px;
}
3
vin_Bin87 8 Мар 2018 в 21:44
3 ответа
Лучший ответ
Все, что вам нужно сделать для браузеров с поддержкой webkit, это
::-webkit-scrollbar { display:none }
Я не верю, что в Firefox есть чистый способ CSS сделать это, так как в настоящее время он не поддерживает настройку полосы прокрутки. см. связанный с ним способ сделать это с отступом, который может быть вашим единственным вариантом: -to-scroll? rq = 1 «> Скрыть полосу прокрутки, но при этом можно прокручивать .
3
Julian Tennyson 8 Мар 2018 в 19:10
Я знаю, что вы сказали, что не хотите возиться с отступами или полями, но я чувствовал то же самое, я попробовал все, и для моего решения лучше всего было показывать вертикальную полосу прокрутки, а затем добавлять отрицательный отступ, чтобы скрыть его.
Это работало для IE11, FF60.9 и Chrome 80
body {
-ms-overflow-style: none; /** IE11 */
overflow-y: scroll;
overflow-x: hidden;
margin-right: -20px;
}
0
John Carroll 19 Мар 2020 в 16:42
Это будет несколько работать
-ms-overflow-style: -ms-autohiding-scrollbar;
Но не скрывает, когда пользователь прокручивает. Лучшим способом было бы поместить ваш контент в родительский div, где переполнение скрыто, но разрешить прокрутку внутри вашего дочернего div.
0
awtrimpe 26 Фев 2019 в 20:12
49180303Свойство overflow — обработка вылезающего содержимого
Свойство overflow указывает браузеру, как поступать с содержимым (текст, картинки, другие блоки), которое вылазит за границы блока (за его ширину или высоту). Браузер может скрыть вылезающую часть, добавить полосы прокрутки или ничего не делать (оставить как есть — вылезшим за границы).
Синтаксис
селектор {
overflow: hidden | scroll | auto | visible;
}
Значения
Значение | Описание |
---|---|
hidden | Скрывает то содержимое, которое вылезло за границы блока. |
scroll | Добавляет полосы прокрутки, причем всегда, даже если ничего не вылазит (в этом случае они будут неактивными). |
auto | Добавляет полосы прокрутки при необходимости: если содержимое не помещается — они появятся, если все помещается — их не будет. |
visible | Не скрывает то содержимое, которое вылезло за границы блока. |
Значение по умолчанию: visible.
Пример . Значение visible
В данном примере очень длинное слово не поместится в контейнер и вылезет за его границы. Обрезания не происходит:
<div>
Lorem ipsum dolor sit amet
оооооооооооооооооооооооооооооченьдлинноеслово,
consectetur adipiscing elit.
</div>
#elem {
overflow: visible;
border: 1px solid red;
width: 200px;
}
:
Пример .
Значение visibleА сейчас ограничена не только ширина, но и высота (текст вылезет за блок и по высоте):
<div>
Lorem ipsum dolor sit amet
оооооооооооооооооооооооооооооченьдлинноеслово,
consectetur adipiscing elit.
</div>
#elem {
width: 200px;
height: 40px;
overflow: visible;
border: 1px solid red;
margin-bottom: 20px;
}
:
Сейчас все, что вылезло за границы контейнера просто обрежется (и по высоте тоже). Обратите внимание на то, что обрезание по высоте происходит только тогда, когда она задана явно (в нашем случае height: 40px). В противном случае текст расширяет контейнер по высоте — и никакого обрезания не будет:
<div>
Lorem ipsum dolor sit amet
оооооооооооооооооооооооооооооченьдлинноеслово,
consectetur adipiscing elit. </div>
#elem {
overflow: hidden;
width: 200px;
height: 40px;
border: 1px solid red;
}
:
Пример . Значение scroll
При значении scroll полосы прокрутки будут всегда, даже если ничего не вылазит (в этом случае они будут неактивными). Сейчас текст не вылазит ни по ширине, ни по высоте, но полосы прокрутки все равно есть (неактивные):
<div>
Lorem ipsum dolor sit amet
оооооооооооооооооооооооооооооченьдлинноеслово,
consectetur adipiscing elit.
</div>
#elem {
overflow: scroll;
width: 400px;
height: 100px;
border: 1px solid red;
}
:
Пример . Значение auto
При значении auto полосы прокрутки добавляются только, если содержимое вылазит за контейнер. Сейчас их нет, так как все помещается:
<div>
Lorem ipsum dolor sit amet
оооооооооооооооооооооооооооооченьдлинноеслово,
consectetur adipiscing elit. </div>
#elem {
overflow: auto;
width: 400px;
height: 100px;
border: 1px solid red;
}
:
Пример . Значение auto
А теперь ограничим ширину — появится горизонтальная полоса прокрутки:
<div>
Lorem ipsum dolor sit amet
оооооооооооооооооооооооооооооченьдлинноеслово,
consectetur adipiscing elit.
</div>
#elem {
width: 200px;
overflow: auto;
height: 100px;
border: 1px solid red;
}
:
Смотрите также
- свойство word-break,
переносящее буквы длинного слова на новую строку - свойство overflow-wrap,
переносящее буквы длинного слова на новую строку - свойство overflow-x,
которое обрезает вылезающие по горизонтали части - свойство overflow-y,
которое обрезает вылезающие по вертикали части
Как сделать красивую полосу для прокрутки на CSS
Скролл бар используется не только на веб страницах но и в отдельных формах, поэтому его форма и размер имеют большое значение. Да и с красивым дизайном сочетаться стандартная панель прокрутки не будет. Самое простое решение данной проблемы — это стилизовать стандартный скролл средствами css3. Ограничение данного способа в том, что он работает только в браузерах использующих webkit
Вот пример HTML кода для работы:
<div></div>
CSS
.scroll-block {height: 70px;width: 340px;background: whitesmoke;overflow-y: scroll;border:1px solid;} .scroll-block::-webkit-scrollbar-track {border-radius: 4px;} .scroll-block::-webkit-scrollbar {width: 6px;} .scroll-block::-webkit-scrollbar-thumb {border-radius: 4px;background: #f0f2f5;} .scroll-block:hover::-webkit-scrollbar-thumb {background: #6a7d9b;}
Рассмотрим подробнее каждый элемент
::-webkit-scrollbar-track {border-radius: 4px;} — Задает для трэка скругление краев в 4px, так же можно добавить фон
::-webkit-scrollbar {width: 6px;} — Ширина скролла 6px
::-webkit-scrollbar-thumb {border-radius: 4px;background: #f0f2f5;} — Задает цвет и радиус скругления в трэка
:hover::-webkit-scrollbar-thumb — При наведении на блок меняет цвет трэка.
Так же если нужно оформить скролл-бар для всего сайта, то в CSS необходимо убрать .scroll-block, и тогда параметры станут глобальными.
Будут вопросы, задавайте в комментариях. Отвечу
Summary
Article Name
Как сделать красивую полосу для прокрутки на CSS
Description
Скролл бар используется не только на веб страницах но и в отдельных формах, поэтому его форма и размер имеют большое значение. Да и с красивым дизайном сочетаться стандартная панель прокрутки не будет.
Как убрать маркеры списка css?
Здравствуйте, дорогие друзья!
Рассмотрим как убрать маркеры списка в CSS, ведь такая необходимость возникает очень часто при работе как с маркированными так и с нумерованными списками.
Предположим у нас есть обычный список:
<ul> <li> Весна</li> <li> Лето</li> <li> Осень</li> <li> Зима</li> </ul>
<ul> <li> Весна</li> <li> Лето</li> <li> Осень</li> <li> Зима</li> </ul> |
По умолчанию он будет отображаться с вот такими маркерами в виде точек:
Если мы хотим убрать маркеры списка, то нам нужно для его элементов дописать CSS-свойство list-style:none; или list-style-type: none;
.my-list { list-style:none; }
.my-list { list-style:none; } |
Если наш список не имеет своего класса, но находится в каком то блоке, как здесь:
<div> <ul> <li> …</li> <li> …</li> </ul> </div>
<div> <ul> <li> …</li> <li> …</li> </ul> </div> |
То CSS код будет выглядеть так:
. block ul li { list-style:none; }
. block ul li { list-style:none; } |
Аналогично мы можем убрать цифры в нумерованном списке, только вместо ul нужно указывать ol.
Это свойство позволит нам убрать маркер, но отступ слева останется.
Чтобы убрать этот отступ слева применим для тегов <li< CSS свойство margin-left:0px;
.my-list { margin-left:0px; }
.my-list { margin-left:0px; } |
margin-left:0px!important;
margin-left:0px!important; |
Если и это не поможет, то читаем внимательно статью «Почему не работают CSS-стили?»
Так же вы можете стилизовать маркированный список заменив стандартный маркер на другой или добавить своё изображение маркера. Подробнее о том как это сделать написано в этой статье: «Как сделать красивый маркированный список HTML?»
Надеюсь что эта статья поможет вам быстрее решить проблему с маркерами и у вас ещё останется время чтобы посмотреть вот это интересное видео про самые необычные здания:
Вот, вроде бы и всё! Если у вас возникнут какие то вопросы или трудности с тем как убрать маркер или вам есть что сказать – оставляете свои комментарии!
С уважением Юлия Гусарь
Hide Scrollbar CSS: Как скрыть полосу прокрутки из любого элемента HTML
Бывают случаи, когда нам нужно скрыть полосу прокрутки от элементов HTMl. Использование может варьироваться от человека к человеку. Это упрямая тема , чтобы сохранить полосу прокрутки или нет, на основе Взаимодействий с пользователем (UI) / Пользовательского опыта (UX) .
В большинстве случаев я не люблю показывать пользователю полосу прокрутки из-за моих дизайнерских приемов.
Для этого вам просто нужно щелкнуть CSS, чтобы добавить несколько псевдоселекторов для его скрытия на основе стилей браузера
Давайте посмотрим на пользовательский интерфейс по умолчанию для элементов прокрутки, которые будут отображать полосу прокрутки.
Мы объявим div
, который будет содержать список элементов, а затем применим некоторый CSS, чтобы обеспечить max-width
и max-height
, чтобы увидеть поведение прокрутки.
- Некоторая ценность
- Некоторая ценность
- Некоторая ценность
- Некоторая ценность
- Некоторая ценность
- Некоторая ценность
- Некоторая ценность
- Некоторая ценность
- Некоторая ценность
- Некоторая ценность
- Некоторая ценность
- Некоторая ценность
- Некоторая ценность
- Некоторая ценность
- Некоторая ценность
- Некоторая ценность
- Некоторая ценность
Войти в полноэкранный режимВыйти из полноэкранного режима . scroll-show ul {
максимальная высота: 100 пикселей;
максимальная ширина: 200 пикселей;
перелив: авто;
граница: 2px solid # f3f3f3;
отступ слева: 16 пикселей;
}
Войти в полноэкранный режимВыйти из полноэкранного режимаПосмотрим, как это выглядит на экране
Видите ли, браузер автоматически добавляет полосу прокрутки по умолчанию, но если мы хотим скрыть, мы можем это сделать.
Теперь мы добавим элемент css, чтобы скрыть полосу прокрутки:
Мы объявим div
с другим именем класса, которое будет содержать такое же количество элементов, а затем мы будем использовать тот же CSS, но с некоторыми дополнительными правилами, чтобы видеть поведение прокрутки, но не видеть полосу прокрутки.
- Некоторая ценность
- Некоторая ценность
- Некоторая ценность
- Некоторая ценность
- Некоторая ценность
- Некоторая ценность
- Некоторая ценность
- Некоторая ценность
- Некоторая ценность
- Некоторая ценность
- Некоторая ценность
- Некоторая ценность
- Некоторая ценность
- Некоторая ценность
- Некоторая ценность
- Некоторая ценность
- Некоторая ценность
Войти в полноэкранный режимВыйти из полноэкранного режима . scroll-hide ul {
максимальная высота: 100 пикселей;
максимальная ширина: 200 пикселей;
граница: 2px solid # f3f3f3;
отступ слева: 16 пикселей;
перелив: авто;
/ * это скроет полосу прокрутки в браузерах на основе Mozilla * /
переполнение: -moz-scrollbars-none;
/ * это скроет полосу прокрутки в Internet Explorer * /
-ms-overflow-style: нет;
}
/ * это скроет полосу прокрутки в браузерах на основе webkit - safari, chrome и т. д. * /
.scroll-hide ul :: - webkit-scrollbar {
ширина: 0! важно;
дисплей: нет;
}
Войти в полноэкранный режимВыйти из полноэкранного режимаПосмотрим, добились ли мы того, чего хотели
Здесь вы можете видеть, что полоса прокрутки больше не видна, но функциональность прокрутки остается неизменной.
Надеюсь, это хоть как-то поможет. Прокомментируйте свои мысли по поводу всего, что вы хотели бы изменить или добавить.
Скрыть полосу прокрутки
На этой странице показано, как скрыть полосу прокрутки из элемента HTML.
Вы можете использовать код CSS для удаления полос прокрутки из любого элемента, на котором могут появляться полосы прокрутки. Эти элементы включают элемент div
, элемент iframe
, тег textarea
и даже теги body
или html
(чтобы скрыть полосы прокрутки браузера).
Скрыть
текстовое поле
Полосы прокрутки Элемент textarea
обычно используется для того, чтобы посетители вашего веб-сайта могли вводить текст (чтобы они могли оставлять отзывы, оставлять комментарии и т. Д.). По умолчанию элемент textarea
поставляется с вертикальной полосой прокрутки (и, возможно, даже с горизонтальной полосой прокрутки). Эта вертикальная полоса прокрутки позволяет пользователю продолжать вводить и просматривать свой текст (путем прокрутки вверх и вниз).
Чтобы скрыть эту вертикальную полосу прокрутки (и горизонтальную полосу прокрутки, если она тоже появляется), вам необходимо использовать свойство переполнения CSS
со значением
, скрытым
.
Пример:
Важно отметить, что, даже если полосы прокрутки скрыты, пользователь может вводить столько данных, сколько захочет.Скрытые полосы прокрутки просто не позволяют пользователю прокручивать страницу вниз, чтобы увидеть собственные комментарии.
Полосы прокрутки браузера - Скрыть
Тот же принцип можно использовать для удаления полос прокрутки браузера. Когда содержимое на странице занимает больше высоты браузера, любые полосы прокрутки, которые обычно появляются, будут скрыты. В этом примере к элементу html
добавлено свойство overflow
со значением , скрытым
.
Пример:
Код:
Скрыть пример полосы прокрутки
Этот div имеет высоту 400 пикселей и высоту 400 пикселей.Попробуйте изменить размер браузера так, чтобы он был меньше 400 пикселей. Вы заметите, что полосы прокрутки не отображаются. Это связано с тем, что мы применили overflow: hidden
к тегу cfm "> тег body
.
Если бы мы удалили overflow: hidden
, полосы прокрутки автоматически появлялись бы, когда содержимое становилось слишком большим.
Полосы прокрутки браузера - Авто
Скрытие полос прокрутки браузера - это хорошо и хорошо, но это может быть серьезной проблемой для удобства использования. В конце концов, ваши пользователи не могут прокрутить вниз, чтобы увидеть ваш контент под сгибом.
Многие веб-мастера предпочитают удалять полосы прокрутки, когда они не нужны, но заставляют их появляться, когда они нужны .
Это почти то же самое, что и скрытие полос прокрутки (см. Выше). Единственное отличие состоит в том, что для свойства overflow
установлено значение auto
вместо hidden
.
Пример:
HTML код:
0 Transitional // EN" "http: //www.w3.org / TR / xhtml1 / DTD / xhtml1-transitional.dtd ">
Пример автоматической полосы прокрутки
Этот div имеет высоту 400 пикселей и высоту 400 пикселей. Если ваш браузер развернут до размера более 400x400, полосы прокрутки отображаться не должны.Попробуйте изменить размер браузера так, чтобы он был меньше 400 пикселей. Должны появиться полосы прокрутки - они будут появляться только тогда, когда они нужны. Это потому, что мы применили overflow: auto
к тегу тег html
.
Скрыть
iFrame
Полосы прокрутки Элемент iframe HTML позволяет создавать встроенный фрейм. Встроенный фрейм представляет содержимое другой страницы в наборе фреймов на странице. На первый взгляд встроенный фрейм обычно выглядит как полоса прокрутки с полосами прокрутки. То есть, если вы не удалите полосы прокрутки.
Есть несколько способов скрыть полосы прокрутки от встроенного фрейма. Вот они:
- Использование
scrolling = "no"
. Вот как удалить полосы прокрутки iframe в HTML 4.1 (текущая версия HTML на момент написания). - Использование
переполнение: скрыто
.Вот как скрыть полосы прокрутки с помощью CSS (каскадных таблиц стилей) - Использование
seamless = "seamless"
. Этот атрибут был введен в рабочий проект HTML версии 5. Следовательно, этот код должен быть включен в будущие браузеры.
Какой использовать?
Вы можете безопасно использовать все три одновременно. При этом, если вы предпочитаете проверять свои веб-страницы с помощью валидатора W3C, вам следует использовать только метод, который соответствует версии HTML, по которой вы проверяете. Поэтому, если вы используете HTML 4.1, используйте scrolling = "no"
. Если вы используете HTML 5, используйте seamless = "seamless"
.
В любом случае вы также можете использовать overflow: hidden
вместе с любым другим кодом. Фактически, вы обычно обнаружите, что это переопределяет HTML и скрывает все определенные полосы прокрутки.
Пример
Вот пример использования scrolling = "no"
и overflow: hidden
:
Вы также можете использовать scrolling = "auto"
для отображения полос прокрутки только тогда, когда они необходимы (при использовании HTML 4. 1). Эквивалент CSS: overflow: auto
.
Для получения дополнительных сведений о встроенных фреймах см. Тег iframe
(HTML 4.1) и тег iframe
(версия HTML 5)
TomRed.net - Отключение или включение горизонтальной или вертикальной полосы прокрутки
В HTML полоса прокрутки отображается, когда содержимое элемента превышает размер экрана. Это не тот случай, когда контент выходит за пределы своего элемента справа или слева. В этом случае вы можете заставить текст оставаться в поле и предоставить полосу прокрутки, чтобы пользователь мог читать.
// Опции: видимый, скрытый, прокрутка, авто
div.disabled {
переполнение-x: скрыто; // горизонтально
переполнение-y: прокрутка; // вертикальный
}
В HTML полоса прокрутки отображается, когда содержимое элемента выходит за пределы экрана. Это не тот случай, когда контент выходит за пределы своего элемента справа или слева. В этом случае вы можете заставить текст оставаться в поле и предоставить полосу прокрутки, чтобы пользователь мог читать.
Атрибуты CSS overflow-x и overflow-y управляют горизонтальной и вертикальной полосами прокрутки.Это полезно, когда вам нужно прокручивать только в одном направлении. С помощью атрибутов overflow- * вы можете скрыть горизонтальные или вертикальные полосы прокрутки.
div.disabled {
переполнение-x: скрыто; // горизонтально
переполнение-y: прокрутка; // вертикальный
}
Чтобы отключить горизонтальную полосу прокрутки, введите overflow-x: hidden
в CSS. Чтобы принудительно использовать полосу прокрутки, когда она отсутствует, используйте overflow-y: scroll
. Это может остановить прыжок браузера, когда он добавляет полосу прокрутки по мере того, как содержимое расширяется и выходит за пределы пространства.В таблице ниже представлены 4 возможных варианта.
- видим (по умолчанию)
- Содержимое не обрезано. Он отображается вне элемента.
- скрыто
- При этом содержимое обрезается, но браузер не отображает полосу прокрутки для просмотра остального содержимого.
- свиток
- Содержимое обрезается, но браузер отображает полосу прокрутки для просмотра остального содержимого.
- авто
- Если браузер обрезает контент, он должен отображать полосу прокрутки, чтобы увидеть остальное содержимое
Следующие примеры показывают переполнение : видно
, переполнение: скрыто
и переполнение: авто
.
Первый случай, overflow: visible
, текст будет выходить за пределы поля, обведенного красным.
Второй случай, переполнение: скрытый
, обрезает содержимое. Это предотвращает перетекание содержимого, но также не отображает дополнительное содержимое.
Третий случай, overflow: auto
, добавит полосу прокрутки и сожмет содержимое в заданную область. Эта полоса прокрутки позволит пользователям видеть дополнительный контент, не переполняя его на странице.Полоса прокрутки будет отображаться только в том случае, если для этого достаточно содержимого.
Последний вариант, overflow: scroll
, всегда будет отображать полосу прокрутки. Полоса прокрутки будет присутствовать, даже если содержимое не превышает заданную область. Это полезно, когда вы обнаруживаете, что страница «всплывает» при добавлении полосы прокрутки. Так обстоит дело с семейством браузеров IE. Определив, что полоса прокрутки будет видна все время, она не будет «всплывать» при необходимости. Это уберет эффект перехода на странице.
overflow-y: visible (по умолчанию) Lorem ipsum dolor sit amet, consctetuer adipiscing elit. Aenean tempus. Nam non nunc. Fusce dolor elit, rhoncus vel, malesuada eget, hendrerit nec, orci. Curabitur nisi. Nullam fermentum. Ut at quam ornare ipsum Vehicula semper. Aliquam pede orci, venenatis ac, tempor non, tincidunt eget, justo. Pellentesque fermentum venenatis ligula.
overflow-y: скрыто Lorem ipsum dolor sit amet, consctetuer adipiscing elit.Aenean tempus. Nam non nunc. Fusce dolor elit, rhoncus vel, malesuada eget, hendrerit nec, orci. Curabitur nisi. Nullam fermentum. Ut at quam ornare ipsum Vehicula semper. Aliquam pede orci, venenatis ac, tempor non, tincidunt eget, justo. Pellentesque fermentum venenatis ligula. Lorem ipsum dolor sit amet, conctetuer adipiscing elit. Aenean tempus.
overflow-y: scroll Lorem ipsum dolor sit amet, consctetuer adipiscing elit. Aenean tempus. Nam non nunc. Fusce dolor elit, rhoncus vel, malesuada eget, hendrerit nec, orci.Curabitur nisi. Nullam fermentum. Ut at quam ornare ipsum Vehicula semper. Aliquam pede orci, venenatis ac, tempor non, tincidunt eget, justo. Pellentesque fermentum venenatis ligula.
overflow-x - CSS: каскадные таблицы стилей
Свойство CSS overflow-x
устанавливает, что показывает, когда содержимое выходит за пределы левого и правого края элемента уровня блока. Это может быть ничего, полоса прокрутки или содержимое переполнения.
Исходный код этого интерактивного примера хранится в репозитории GitHub.Если вы хотите внести свой вклад в проект интерактивных примеров, клонируйте https://github.com/mdn/interactive-examples и отправьте нам запрос на перенос.
переполнение-x: видимое;
переполнение-x: скрыто;
переполнение-x: клип;
переполнение-x: прокрутка;
переполнение-x: авто;
переполнение-х: наследование;
переполнение-x: начальное;
переполнение-x: не установлено;
Свойство overflow-x
указано как одно ключевое слово, выбранное из списка значений ниже.
Значения
-
видимые
- Содержимое не обрезается и может отображаться за пределами левого и правого краев поля заполнения.Если
overflow-y
- этоскрытый
,scroll
илиauto
и это свойствоvisible
, он будет неявно вычислятьauto
. -
скрыто
- Содержимое при необходимости обрезается, чтобы поместиться в поле заполнения по горизонтали. Полосы прокрутки не предусмотрены.
-
clip
Это экспериментальный API, который не следует использовать в производственном коде. - Как и для
, скрытого
, содержимое обрезается до поля заполнения элемента.Разница междуclip
иhidden
состоит в том, что ключевое словоclip
также запрещает любую прокрутку, включая программную. Поле не является контейнером прокрутки и не запускает новый контекст форматирования. Если вы хотите запустить новый контекст форматирования, вы можете использоватьdisplay: flow-root
для этого. -
свиток
- Содержимое при необходимости обрезается, чтобы поместиться в поле заполнения по горизонтали. Браузеры отображают полосы прокрутки независимо от того, действительно ли какой-либо контент обрезан.(Это предотвращает появление или исчезновение полос прокрутки при изменении содержимого.) Принтеры по-прежнему могут печатать переполненное содержимое.
-
авто
- Зависит от пользовательского агента. Если содержимое помещается внутри поля заполнения, оно выглядит так же, как
видимое
, но все же устанавливает новый контекст форматирования блока. Настольные браузеры предоставляют полосы прокрутки при переполнении содержимого.
видимые | скрытый | зажим | свиток | авто
HTML
-
overflow-x: hidden
- скрывает текст за пределами поля.
ABCDEFGHIJKLMOPQRSTUVWXYZABCDEFGHIJKLMOPQRSTUVWXYZ
-
overflow-x: scroll
- всегда добавляет полосу прокрутки
ABCDEFGHIJKLMOPQRSTUVWXYZABCDEFGHIJKLMOPQRSTUVWXYZ
-
overflow-x: visible
- при необходимости отображает текст за пределами поля.
ABCDEFGHIJKLMOPQRSTUVWXYZABCDEFGHIJKLMOPQRSTUVWXYZ
-
overflow-x: auto
- в большинстве браузеров эквивалентно scroll
.
ABCDEFGHIJKLMOPQRSTUVWXYZABCDEFGHIJKLMOPQRSTUVWXYZ
CSS
# div1, # div2, # div3, # div4 {
граница: сплошной черный 1px;
ширина: 250 пикселей;
нижнее поле: 12 пикселей;
}
# div1 {overflow-x: hidden;}
# div2 {overflow-x: scroll;}
# div3 {overflow-x: visible;}
# div4 {overflow-x: auto;}
Результат
Таблицы BCD загружаются только в браузере
theKashey / react-remove-scroll: Удаляет и отключает 📜 в режиме «Реагировать»
Отключает прокрутку за пределами дочернего узла
.
- 🖱 совместимость с мышью и сенсорными устройствами
- 📈 по вертикали и по горизонтали
- 📜 убирает полосу прокрутки документа, сохраняя ее пространство
- ✅ поддерживает вложенные прокручиваемые элементы
- 🕳 поддерживает реактивные порталы (использует систему событий React)
- ☠️ он может блокировать буквально любую прокрутку в любом месте
Просто оберните контент, который должен быть прокручиваемым, а все остальное - нет.
импортировать {RemoveScroll} из «реагировать-удалить-прокрутить»;Только этот контент можно будет прокручивать
RemoveScroll
принять следующие реквизиты
-
детский
-
[включено]
- активировать или деактивировать поведение компонента, не удаляя его. -
[allowPinchZoom = false]
- включено поведение «щипок и масштаб». По умолчанию это можно предотвратить. Однако - сжатие и масштабирование могут нарушить «изоляцию прокрутки», а по умолчанию отключено . -
[noIsolation = false]
- отключает захват внешних событий. Захват событий удобен для React и вряд ли станет проблемой. Но если вы используете какой-то shadowbox - он вам не нужен. -
[inert = false]
- ☠️ (будьте осторожны) полностью отключает события на остальной части страницы с помощьюсобытий-указателей
, кроме Lock (+ сегменты). Порталы React недружелюбны, могут привести к проблемам с производством. Включите только для редких случаев, когда вам нужно отключить полосы прокрутки где-нибудь на странице (кроме тела, блокировки и фрагментов). -
[forwardProps]
- пересылает все реквизиты детям -
[className]
- className для внутреннего div -
[removeScrollBar]
- для управления удалением полосы прокрутки. Установите значение false, если вы предпочитаете оставить его (колесико и сенсорная прокрутка по-прежнему отключены).
- (🧩 полностью) 1,7 КБ после сжатия (без учета tslib).
- (👁 UI) 400b , только визуальные элементы
- (🚗 sidecar) 1.5kb, побочные эффекты
импорт {sidecar} из «реагировать-удалить-прокрутить»; импортировать {RemoveScroll} из 'response-remove-scroll / UI'; const sidecar = sidecar (() => import ('react-remove-scroll / sidecar'));При необходимости загрузит логику из коляски
Рассмотрите установку
-webkit-overflow-scrolling: touch;
на уровне документов для надлежащего мобильного взаимодействия.
Внутренний отдел
Но по умолчанию RemoveScroll создает div для обработки и захвата событий.
Вы можете указать для него className
, если нужно, или удалить .
Следующие примеры кода будут давать такой же результат
Только этот контент можно будет прокручивать
// RemoveScroll добавит реквизиты в этот div Только этот контент можно будет прокручивать
Выберите первый, если второй вам не нужен.
Позиция: неподвижные элементы
Чтобы правильно задать размер этих элементов, добавьте к ним специальный className.
импортировать {RemoveScroll} из «реагировать-удалить-прокрутить»; // сделать ширину: 100% // сделать "правильно: 0" classNames.zeroRight)} />
Подробности см. В документации по response-remove-scroll-bar.
Более одного замка
Когда активен дополнительный компонент (по умолчанию), будет активен только один (последний) компонент.
Изоляция
Это могло случиться -
отключаешь прокрутку на теле,
вы подавляете все события прокрутки и колеса,
и вы создаете фантом остальную часть страницы из-за инертной опоры
.
Для браузера существует только что-то внутри Lock, и это может быть меньше, чем вы ожидали.
Не забывайте о shard
, не забывайте - inert
не поддерживает порталы, не забывайте - в большинстве случаев вам не нужна дополнительная изоляция.
только осторожно!
Для выполнения работы эта библиотека настроила пассивный прослушиватель событий , а не . Инструменты разработчика Chrome будут жаловаться на это, поскольку производительность no-op.
Мы должны использовать синхронный обработчик прокрутки / касания, и это может повлиять на производительность прокрутки.
Рассмотрите возможность использования режима noIsolation
, если у вас есть большие прокручиваемые области.
- v1 поддерживает React 15/16
- v2 требует 16.8.0+ (хуки)
Это рефакторинг другой библиотеки - react-scroll-locky - чтобы сделать пакет меньше и удобнее для реактивных порталов.
См. Также
Этот пакет относительно меньше (1), более удобен для реагирования (2), работает с ненулевыми полями (3) и имеет лучшее управление «перепрокруткой».
MIT
Удаление полос прокрутки и границ - как работают веб-страницы
Если вы предпочитаете "чистый" вид вашей страницы, без каких-либо полос прокрутки и границ, вы можете указать это с помощью тегов, размещенных внутри тега вашего тега "frame src".
Удалите полосы прокрутки, добавив тег «scrolling = no.«
Пример:
Удалите границы, добавив тег frameborder = 0.
Пример:
Вы также можете указать ширину и высоту поля для каждого кадра, добавив теги «marginwidth = value» и «marginheight = value». Вы можете сделать поля любым желаемым значением в пикселях.Опять же, вставьте эти теги в тег frame src.
Несколько кадров
Можно комбинировать различные строки и столбцы фреймов, создавая документы с набором фреймов, установленные в других документах с набором фреймов. Организация тегов, необходимых для достижения этого эффекта, может быть довольно сложной. На изображении вверху страницы показан пример простой страницы с «вложенными» фреймами.
Документ набора фреймов, созданный для этого макета:
Frame Test
В разобранном виде это то, что обозначает каждая строка тегов "frame":
В этом документе две строки. Верхний ряд занимает 20 процентов доступного вертикального пространства.Нижний ряд занимает 80 процентов. Фактически, эти значения определяют высоту каждой строки.
В первой строке два столбца. Левый столбец занимает 70 процентов доступного горизонтального пространства, а правый столбец занимает 30 процентов. Фактически, эти значения определяют ширину каждого столбца.
«Логотип» документа HTM появится в первом столбце первой строки.
«Адрес» документа HTM появится во втором столбце первой строки.
Первый набор фреймов столбца завершен.
«Информация» документа HTM появится в первом столбце второй строки.
«Ссылки» на документ HTM появятся во втором столбце второй строки.
Набор фреймов второго столбца завершен.
Полный набор фреймов завершен.
Frames - отличный инструмент, который вы можете использовать, чтобы сделать вашу веб-страницу еще более привлекательной и динамичной. Они позволяют вам поддерживать определенные аспекты вашей страницы даже тогда, когда пользователь нажимает ссылку на другую часть вашего сайта или на другой сайт полностью. Чтобы продолжить создание веб-страницы своей мечты, ознакомьтесь со следующим разделом, посвященным изображениям.
Блокировка прокрутки тела - все работает | Уилл По | jsdownunder
Узнайте, как люди блокируют прокрутку тела, в Google, и вы найдете несколько решений для этого.Базовый вариант использования:
- Разрешить некоторым
targetElement
отображаться над телом с положением: абсолютное
. - После его появления воспользуйтесь каким-нибудь решением, чтобы отключить прокрутку текста, чтобы прокрутка в пределах
targetElement
не прокручивала содержимое тела.
Вот возможные решения, с которыми вы столкнетесь:
Этот подход работает для настольных браузеров и мобильных устройств Android. Однако для мобильных устройств iOS (телефонов и планшетов) он не работает.Хорошо, попробуем набрать # 2 .
Отличное решение - прокрутка заблокирована! Но он также блокирует прокрутку внутри targetElement
. Если содержимое в targetElement
имеет высоту, превышающую заданную высоту элемента, вы захотите, чтобы он прокручивался !!!!!
Если вы сделаете тело position: fixed
, тело будет прокручиваться вверх, теряя исходное положение прокрутки тела. Не идеальный UX!
Блокировка прокрутки тела, которая работает со всем 😏
Поскольку все устройства, кроме iOS, соблюдают overflow: hidden
в элементах html / body
, мы можем использовать этот подход для этих устройств.
Для iOS - проверяем, прокручен ли targetElement
вниз или вверх. Если да, то примените решение e.preventDefault ()
. Для определения этого необходим некоторый Javascript.
Логику достижения предлагаемого решения можно найти здесь .
Для удобства решение можно загрузить как пакет NPM body-scroll-lock и использовать в проектах с использованием ванильного JS или фреймворков, таких как React.
(кстати, если вы нашли пакет body-scroll-lock полезным, отметьте репозиторий GitHub , чтобы помочь другим решить их проблемы с блокировкой прокрутки тела более легко!).