Просто тест, который работает нормально.
#parent{
width: 100%;
height: 100%;
overflow: hidden;
}
#child{
width: 100%;
height: 100%;
overflow-y: scroll;
padding-right: 17px; /* Increase/decrease this value for cross-browser compatibility */
box-sizing: content-box; /* So the width will be 100% + 17px */
}
Рабочая скрипка
JavaScript:
Поскольку ширина полосы прокрутки различается в разных браузерах, лучше обрабатывать ее с помощью JavaScript. Если вы это сделаете Element.offsetWidth - Element.clientWidth
, появится точная ширина полосы прокрутки.
JavaScript работает скрипка
Или
Используя Position: absolute
,
#parent{
width: 100%;
height: 100%;
overflow: hidden;
position: relative;
}
#child{
position: absolute;
top: 0;
bottom: 0;
left: 0;
right: -17px; /* Increase/Decrease this value for cross-browser compatibility */
overflow-y: scroll;
}
Рабочая скрипка
JavaScript работает скрипка
Информация:
Основываясь на этом ответе, я создал простой плагин прокрутки .
!important
поэтому я удалил их все: jsfiddle.net/5GCsJ/954box-sizing: border-box; width: calc(100% + 50px);
и то же значение для заполнения. Ни один браузер не имеет ширины / высоты полосы прокрутки 50px, поэтому он должен просто охватить их все ...Это легко в WebKit, с дополнительным стилем:
источник
cordova
приложении, работал нормально. пришлось применитьoverflow:scroll
к элементу.-webkit-overflow-scrolling: touch
Это работает для меня с простыми свойствами CSS:
Для более старых версий Firefox используйте:
overflow: -moz-scrollbars-none;
источник
overflow: -moz-scrollbars-none
скрывает полосы прокрутки в Firebox, но также отключает прокрутку. Можете ли вы предоставить демо, где это работает для вас?-moz-scrollbars-none
свойство удалено для новейших версий Firefox: developer.mozilla.org/en-US/docs/Web/CSS/overflow-webkit-overflow-scrolling: touch
-moz-scrollbars-none
вы можете использовать@-moz-document url-prefix() { .container { overflow: hidden; } }
. См. Stackoverflow.com/questions/952861/… .ОБНОВИТЬ:
Firefox теперь поддерживает скрытие полос прокрутки с помощью CSS, поэтому теперь доступны все основные браузеры (Chrome, Firefox, Internet Explorer, Safari и т. Д.).
Просто примените следующий CSS к элементу, из которого вы хотите удалить полосы прокрутки:
Это наименее хакерское кросс-браузерное решение, которое я знаю в настоящее время. Проверьте демо.
ОРИГИНАЛЬНЫЙ ОТВЕТ:
Вот еще один способ, который еще не был упомянут. Это действительно просто и включает в себя только два div и CSS. Не требуется JavaScript или проприетарный CSS, и он работает во всех браузерах. Также не требуется явно устанавливать ширину контейнера, что делает его жидким.
Этот метод использует отрицательное поле, чтобы переместить полосу прокрутки из родительского элемента, а затем то же количество отступов, чтобы вернуть содержимое в исходное положение. Техника работает для вертикальной, горизонтальной и двусторонней прокрутки.
Демонстрации:
Пример кода для вертикальной версии:
HTML:
CSS:
источник
Использование:
Это трюк, чтобы несколько перекрыть полосу прокрутки с перекрывающимся div, у которого нет полос прокрутки:
Это только для браузеров WebKit ... Или вы можете использовать CSS-контент для браузера (если он есть в будущем). Каждый браузер может иметь разные и специфические свойства для своих соответствующих баров.
Для использования Microsoft Эдж:
-ms-overflow-style: -ms-autohiding-scrollbar;
или ,-ms-overflow-style: none;
как в MSDN .Для Firefox нет эквивалента. Хотя для этого есть плагин jQuery, http://manos.malihu.gr/tuts/jquery_custom_scrollbar.html
источник
::-webkit-scrollbar { display: none; } .ui-content { -webkit-overflow-scrolling: touch; }
// jQuery Mobile onMobileInit ()$.mobile.touchOverflowEnabled = true;
Этот ответ не включает код, поэтому вот решение со страницы :
Согласно странице, этот подход не должен знать ширину полосы прокрутки заранее, чтобы работать, и решение работает также для всех браузеров, и его можно увидеть здесь .
Хорошо, что вы не обязаны использовать отступы или разницу в ширине, чтобы скрыть полосу прокрутки.
Это также масштабирование безопасно. Решения с отступом / шириной показывают полосу прокрутки при увеличении до минимума.
Исправление в Firefox: http://jsbin.com/mugiqoveko/1/edit?output
источник
::-webkit-scrollbar {}
padding-right: 150px;
исправляет это. Испытано в FF, Chrome, Safari и Edge. Работает также при низких уровнях масштабирования из-за большого отступа вправо.html { -ms-overflow-style: none;}
. В этих браузерах нет необходимости использовать padding-hack.overflow-y: scroll
получить поведение прокрутки, но скрытое (как Chrome), чтобы оно работало на Edge23.Просто используйте следующие три строки, и ваша проблема будет решена:
Где liaddshapes - это имя div, куда идет свиток.
источник
Это работает для меня кросс-браузер. Однако это не скрывает собственные полосы прокрутки в мобильных браузерах.
В SCSS
В CSS
источник
{}
означают вложенные блоки ( )? Как это интерпретировать? А то&
? Возможно, уточните в своем ответе?&::-webkit-scrollbar
становится.hide-native-scrollbar::-webkit-scrollbar { }
в CSS{ width: 0; height: 0;}
для :: - webkit-scrollbar вместоdisplay: none
для iOS.Следующее работало для меня в Microsoft, Chrome и Mozilla для определенного элемента div:
источник
scrollbar-width
(только FF) помечен как «экспериментальный»HTML:
CSS:
Примените CSS соответственно.
Проверьте это здесь (проверено в Internet Explorer и Firefox).
источник
По состоянию на 11 декабря 2018 года (Firefox 64 и выше) ответ на этот вопрос действительно очень прост, поскольку Firefox 64+ теперь реализует спецификацию CSS Scrollbar Styling .
Просто используйте следующий CSS:
Ссылка на выпуск Firefox 64 здесь .
источник
Использование:
CSS
HTML
источник
использование
Вызовите эти функции для любой точки, которую вы хотите загрузить или выгрузить или перезагрузить полосы прокрутки. В Chrome его можно прокручивать, поскольку я тестировал его в Chrome, но я не уверен в других браузерах.
источник
Это работает для меня:
источник
В современных браузерах вы можете использовать
wheel event
:источник
overflow: hidden
этот код, чтобыmat-card-content
(в угловых 5, конечно) прокручивать, и это решило мою проблему. Примечание: я использовалe.deltaY
как свою,step
и она работала как обычная прокрутка, поэтому я думаю, что для нормальной прокрутки, но со скрытой полосой прокрутки, это лучшее совпадение.Моя проблема: я не хочу никакого стиля в моем контенте HTML. Я хочу, чтобы мое тело можно было прокручивать напрямую без какой-либо полосы прокрутки и только вертикальной прокрутки, работая с сетками CSS для любого размера экрана.
В коробке-проклейки значение ударной вязкости обивка или маржинальные решения, они работает с коробкой-проклейки: содержимого коробки .
Мне все еще нужна директива "-moz-scrollbars-none", и, как и gdoron и Mr_Green, мне приходилось скрывать полосу прокрутки. Я попробовал
-moz-transform
и-moz-padding-start
, чтобы воздействие только Firefox, но есть реагирующие побочные эффекты , которые нужны слишком много работы.Это решение работает для содержимого тела HTML со стилем "display: grid" и является адаптивным.
источник
Добавление отступов к внутренней части
div
, как в принятом в настоящее время ответе, не будет работать, если по какой-то причине вы захотите использоватьbox-model: border-box
.Что работает в обоих случаях, так это увеличение ширины внутреннего
div
до 100% плюс ширина полосы прокрутки (при условииoverflow: hidden
внешнего div).Например, в CSS:
В JavaScript кросс-браузер:
источник
Вот как я делаю это для горизонтальной прокрутки; только CSS и хорошо работает с такими фреймворками, как Bootstrap / col- *. Для этого нужны только два дополнительных
div
s и родитель с набором awidth
илиmax-width
:Вы можете выбрать текст для прокрутки или прокрутки пальцами, если у вас есть сенсорный экран.
Краткая версия для ленивых людей:
источник
margin-bottom
чтобы быть ,padding-bottom
но с тем же значением. Это не сожжет ниже места для элемента в нижней части. Это предотвращает перекрытие.margin-bottom
отрицательное, я думаю, что оно не может быть изменено на apadding-bottom
, которое не может обрабатывать отрицательные значенияСледующие стили SASS должны сделать вашу полосу прокрутки прозрачной в большинстве браузеров (Firefox не поддерживается):
источник
Мне довелось попробовать вышеуказанные решения в моем проекте, и по какой-то причине я не смог скрыть полосу прокрутки из-за расположения div. Поэтому я решил скрыть полосу прокрутки, введя элемент div, который покрывает ее поверхностно. Пример ниже для горизонтальной полосы прокрутки:
Соответствующий CSS выглядит следующим образом:
источник
Это будет на теле:
И это CSS:
источник
Это решение для дивитизма, которое, тем не менее, должно работать для всех браузеров ...
Разметка выглядит следующим образом и должна находиться внутри чего-либо с относительным позиционированием (и ее ширина должна быть установлена, например, 400 пикселей):
CSS:
источник
perfect-scrollbar
Плагин , кажется, путь, см: https://github.com/noraesae/perfect-scrollbarЭто хорошо документированное и полное решение на основе JavaScript для решения проблемы с полосами прокрутки.
Демонстрационная страница: http://noraesae.github.io/perfect-scrollbar/
источник
Вы можете использовать приведенный ниже код, чтобы скрыть полосу прокрутки, но при этом можете прокручивать:
источник
Чтобы скрыть полосы прокрутки для элементов с переполненным содержимым, используйте.
источник
Другой вид хакерского подхода - сделать,
overflow-y: hidden
а затем вручную прокрутить элемент примерно так:В блоге deepmikoto есть отличная статья о том, как обнаруживать
onmousewheel
события и бороться с ними . Это может работать для вас, но это определенно не элегантное решение.источник
Я просто хотел поделиться комбинированным фрагментом для скрытия полосы прокрутки, которую я использую при разработке. Это коллекция из нескольких фрагментов, найденных в Интернете, которые работают для меня:
источник
Еще одна простая рабочая скрипка :
Переполнение скрыто в родительском контейнере и переполнение auto в дочернем контейнере. Просто.
источник
Это хитрое решение работает даже в старом браузере IE
Это обходной путь к [ вертикальной полосе прокрутки ]
Просто попробуйте: jsfiddle
источник
Просто установите ширину дочерней ширины до 100%, с отступом до 15 пикселей,
overflow-x
для прокрутки иoverflow:hidden
для родителя и любой ширины, которую вы хотите.Он отлично работает во всех основных браузерах, включая Internet Explorer и Edge, за исключением Internet Explorer 8 и ниже.
источник