Как скрыть конкретную полосу прокрутки? [Дубликат]

О Боже! Я только что видел ваше опубликованное изображение снова, вы просто открываете свой php-файл в браузере. у вас есть open, использующий localhost url. если вы открываете файл непосредственно из своего каталога, он не будет выполнять php-код в любом случае.

use: http://locahost/index.php или http:127.0.0.1/index.php

включить php-код в вашем случае , вы используете <?, который является коротким кодом php для <?php

, по умолчанию короткие короткие коды php отключены.

также используют: sudo apt-get install php5 libapache2-mod-php5 php5-mcrypt, если вы являетесь пользователем ubuntu .

622
задан davidcondrey 29 November 2014 в 12:30
поделиться

18 ответов

Установите overflow: hidden; на тег тела следующим образом:

<style type="text/css">
body {
    overflow:hidden;
}
</style>

Приведенный выше код скрывает горизонтальную и вертикальную полосу прокрутки.

Если вы хотите скрыть только вертикальную полосу прокрутки , используйте overflow-y:

<style type="text/css">
body {
    overflow-y:hidden;
}
</style>

И если вы хотите скрыть только горизонтальную полосу прокрутки, используйте overflow-x:

<style type="text/css">
body {
    overflow-x:hidden;
}
</style>

обновление: я имел в виду скрытый, просто проснулся: -)


Примечание: он также отключит функцию прокрутки. См. Ниже ответы, если вы просто хотите скрыть полосу прокрутки, но не функцию прокрутки.

353
ответ дан JerryGoyal 21 August 2018 в 19:28
поделиться
  • 1
    Собственно, это не совсем правильный ответ: переполнение: скрытое не скрывает & quot; полоса прокрутки. Он также останавливает функцию прокрутки на странице. Это не совсем то, о чем мы просим. – Grsmto 13 March 2013 в 23:41
  • 2
    В Chrome, когда переполнение тела установлено на hidden, прокрутка будет работать с колесом скроллера мыши. В Firefox прокрутка не будет работать с колесиком скроллера мыши, мне потребовалось некоторое время, чтобы понять это. – Doug Molineux 19 August 2013 в 21:17
  • 3
    Неправильный ответ. Отключает прокрутку. – luisfarzati 9 May 2014 в 02:15
  • 4
    Я не вижу смысла утверждать, что overflow: hidden отключает прокрутку. Если кто-то хочет скрыть полосу прокрутки, то, по-видимому, они считают ненужным элемент управления, потому что нет прокрутки для прокрутки в первую очередь . Или, возможно, они просто не хотят разрешать прокрутку вообще . – BoltClock♦ 24 November 2014 в 17:33
  • 5
    Для меня это утверждение вполне справедливо, поскольку вопрос заключается в скрытии полосы прокрутки , а не отключить прокрутку . – sboisse 25 November 2014 в 20:42

Думаю, я нашел работу для вас, ребята, если вы все еще заинтересованы. Это моя первая неделя, но это сработало для меня ..

<div class="contentScroller">
<div class="content">
</div>
</div>

.contentScroller {overflow-y: auto; visibility: hidden;}
.content {visibility: visible;}
18
ответ дан Ben Yo 21 August 2018 в 19:28
поделиться
  • 1
    Как мне заставить это работать? Мой JsFiddle – woojoo666 17 August 2014 в 06:22
  • 2
    Работает для меня в chrome и firefox, не тестировал IE или какой-либо другой браузер. jsfiddle.net/8xtfk729 – Ben Davis 19 January 2015 в 05:31
  • 3
    На хроме (по крайней мере, v54), по какой-то причине это отключает прокрутку через колесо прокрутки. Прокрутите по клавишам со стрелками, home / end / pg down / pg up, коснитесь щелчка, и мышью 3 щелчка n перетаскивания все еще работает. – House3272 6 December 2016 в 01:26
  • 4
    @BenDavis Протестировал его в IE11, и он работает. – almost a beginner 6 December 2016 в 02:42
  • 5
    Этот ответ является законным, он действительно работает и, похоже, работает в браузерах. – Sam 9 January 2018 в 22:06

Кросс-браузер Подходит для скрытия полосы прокрутки.

Tested Edge, Chrome, Firefox, Safari

Скрыть полосу прокрутки, все еще имея возможность прокручивать колесико мыши! codepen

/* make parent invisible */
#parent {
    visibility: hidden;
    overflow: scroll;
}

/* safari and chrome specific style, don't need to make parent invisible because we can style webkit scrollbars */
#parent:not(*:root) {
  visibility: visible;
}

/* make safari and chrome scrollbar invisible */
#parent::-webkit-scrollbar {
  visibility: hidden;
}

/* make the child visible */
#child {
    visibility: visible;
}
9
ответ дан Blake Plumb 21 August 2018 в 19:28
поделиться
  • 1
    объяснение того, как это работает, будет оценено - игра с видимостью родителя / ребенка, чтобы скрыть полосу прокрутки, ужасна – believesInSanta 7 November 2016 в 13:23
  • 2
    @believesInSanta Я добавил комментарии и коды, чтобы лучше объяснить. Я не согласен с вашей оценкой в ​​том, что играть с видимостью - это ужасный способ скрыть полосу прокрутки. Я понимаю, что это взломать, но правильный способ добиться этого эффекта будет, если бы все браузеры поддерживали способ стилизации полос прокрутки отдельно, как хром и сафари. – Blake Plumb 10 November 2016 в 20:32
  • 3
    Я просто влюбился в ваше решение. Он отлично работает (используется в приложениях, которые предназначены для современных браузеров). Спасибо огромное! – Maxime Lafarie 1 August 2017 в 22:36

Просто подумал, что я хотел бы указать кому-либо еще на этот вопрос, что настройка переполнения: hidden (или overflow-y) в элементе body не скрывал полосы прокрутки для меня. Мне пришлось использовать элемент HTML.

5
ответ дан Brad Azevedo 21 August 2018 в 19:28
поделиться
  • 1
    что именно происходит в вашем дизайне, когда вы его пробовали. – Anirudha Gupta 7 October 2012 в 07:39
  • 2
    Я не помню точно, так как это было пару месяцев назад, но я считаю, что настройка переполнения на теле работала в Chrome, но не в Firefox (или наоборот). Однако использование тега HTML работало над обоими. – Brad Azevedo 8 October 2012 в 17:30
  • 3
    Из памяти это может быть разница в режиме quirks. – thomasrutter 21 September 2013 в 02:43

Чтобы отключить вертикальную полосу прокрутки, просто добавьте: overflow-y:hidden;

Узнайте больше о: переполнении

1
ответ дан Brian Peacock 21 August 2018 в 19:28
поделиться

Как уже говорили другие люди, используйте переполнение CSS.

Но если вы все еще хотите, чтобы пользователь мог прокручивать этот контент (без видимости полосы прокрутки), вы должны использовать JavaScript. Ответьте мне на это решение: скрыть полосу прокрутки, пока она еще доступна для прокрутки с помощью мыши / клавиатуры

11
ответ дан Community 21 August 2018 в 19:28
поделиться
  • 1
    Это правильный ответ и должен быть первым. Все выше этого не отвечает на вопрос. OP не просит прокрутки отключен, zhe хочет скрыть полосу прокрутки. – pixelpax 27 March 2017 в 21:31
432
ответ дан davidcondrey 21 August 2018 в 19:28
поделиться

Вы можете использовать свойство CSS overflow и -ms-overflow-style с комбинацией с ::-webkit-scrollbar.

Проверено на IE10 +, Firefox, Safari и Chrome и работает хорошо:

.container {
    -ms-overflow-style: none;  // IE 10+
    overflow: -moz-scrollbars-none;  // Firefox
}
.container::-webkit-scrollbar { 
    display: none;  // Safari and Chrome
}

Это гораздо лучшее решение, чем другие, когда вы скрываете полосу прокрутки с помощью padding-right, потому что ширина полосы прокрутки по умолчанию различна для каждого браузера.

Примечание. В последних версиях Firefox свойство -moz-scrollbars-none устарело ( ссылка ).

34
ответ дан Hristo Eftimov 21 August 2018 в 19:28
поделиться
  • 1
    К сожалению, это не работает в FireFox 48.0.2 на macOS Sierra. Если вы выполните overflow: -moz-scrollbars-none;, вы успешно удалите полосу прокрутки, но вы также удалите возможность прокрутки. Вы могли бы просто установить overflow: hidden на .container. – Martyn Chamberlin 19 October 2016 в 20:27
  • 2
    О, и из developer.mozilla.org/en-US/docs/Web/CSS/overflow мы читаем об этом -moz-scrollbars-none: «Это устаревший API и больше не гарантируется . работа & Quot; – Martyn Chamberlin 19 October 2016 в 20:30

В дополнение к ответу Питера:

 #element::-webkit-scrollbar { 
     display: none; 
 }

Это будет работать одинаково для IE10:

 #element {
      -ms-overflow-style: none;
 }
5
ответ дан JoshW 21 August 2018 в 19:28
поделиться

Я написал версию webkit с некоторыми опциями, такими как auto hide, небольшая версия, прокрутка только-y или только-x

._scrollable{  
    @size: 15px;
    @little_version_ratio: 2;
    @scrollbar-bg-color: rgba(0,0,0,0.15); 
    @scrollbar-handler-color: rgba(0,0,0,0.15);
    @scrollbar-handler-color-hover: rgba(0,0,0,0.3);
    @scrollbar-coner-color: rgba(0,0,0,0);

    overflow-y: scroll;
    overflow-x: scroll;
    -webkit-overflow-scrolling: touch;
    width: 100%;
    height: 100%;


    &::-webkit-scrollbar {
        background: none;
        width: @size;
        height: @size; 
    }
    &::-webkit-scrollbar-track {
        background-color:@scrollbar-bg-color;
        border-radius: @size;

    }
    &::-webkit-scrollbar-thumb {
        border-radius: @size;
        background-color:@scrollbar-handler-color;
        &:hover{
            background-color:@scrollbar-handler-color-hover;

        }
    }
    &::-webkit-scrollbar-corner {
      background-color: @scrollbar-coner-color;
    }

    &.little{
      &::-webkit-scrollbar {
          background: none;
          width: @size / @little_version_ratio;
          height: @size / @little_version_ratio; 
      }
      &::-webkit-scrollbar-track {
          border-radius: @size / @little_version_ratio;
      }
      &::-webkit-scrollbar-thumb {
          border-radius: @size / @little_version_ratio;
      }
    }

    &.autoHideScrollbar{
      overflow-x: hidden;
      overflow-y: hidden;
      &:hover{
            overflow-y: scroll;
            overflow-x: scroll;
            -webkit-overflow-scrolling: touch;
          &.only-y{
              overflow-y: scroll !important;
              overflow-x: hidden !important;
          }

          &.only-x{
              overflow-x: scroll !important;
              overflow-y: hidden !important;
          }
      }
    }


    &.only-y:not(.autoHideScrollbar){
      overflow-y: scroll !important;
      overflow-x: hidden !important;
    }

    &.only-x:not(.autoHideScrollbar){
      overflow-x: scroll !important;
      overflow-y: hidden !important;
    }
}

http://codepen.io/hicTech/pen / KmKrjb

2
ответ дан Marconi 21 August 2018 в 19:28
поделиться

Для полноты, это работает для webkit:

#element::-webkit-scrollbar { 
    display: none; 
}

Если вы хотите, чтобы все полоски прокрутки скрыты, используйте

::-webkit-scrollbar { 
    display: none; 
}

Я не уверен в восстановлении - это работала, но может быть правильный способ сделать это:

::-webkit-scrollbar { 
    display: block; 
}

Вы можете, конечно, всегда использовать width: 0, который может быть легко восстановлен с помощью width: auto, но я не поклонник злоупотребления width для улучшения видимости.

Чтобы узнать, поддерживает ли ваш текущий браузер этот фрагмент:

.content {
  /* These rules create an artificially confined space, so we get 
     a scrollbar that we can hide. They are not part of the hiding itself. */

  border: 1px dashed gray;
  padding: .5em;
  
  white-space: pre-wrap;
  height: 5em;
  overflow-y: scroll;
}

.content::-webkit-scrollbar { 
  /* This is the magic bit */
  display: none;
}
<div class='content'>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris eu
urna et leo aliquet malesuada ut ac dolor. Fusce non arcu vel ligula
fermentum sodales a quis sapien. Sed imperdiet justo sit amet venenatis
egestas. Integer vitae tempor enim. In dapibus nisl sit amet purus congue
tincidunt. Morbi tincidunt ut eros in rutrum. Sed quam erat, faucibus
vel tempor et, elementum at tortor. Praesent ac libero at arcu eleifend
mollis ut eget sapien. Duis placerat suscipit eros, eu tempor tellus
facilisis a. Vivamus vulputate enim felis, a euismod diam elementum
non. Duis efficitur ac elit non placerat. Integer porta viverra nunc,
sed semper ipsum. Nam laoreet libero lacus.

Sed sit amet tincidunt felis. Sed imperdiet, nunc ut porta elementum,
eros mi egestas nibh, facilisis rutrum sapien dolor quis justo. Quisque
nec magna erat. Phasellus vehicula porttitor nulla et dictum. Sed
tincidunt scelerisque finibus. Maecenas consequat massa aliquam pretium
volutpat. Duis elementum magna vel velit elementum, ut scelerisque
odio faucibus.
</div>


(Обратите внимание, что это не совсем правильный ответ на вопрос, потому что он также скрывает горизонтальные столбцы, но это то, что я искал, когда Google указал на меня здесь, поэтому Я решил, что все равно отправлю его.)

800
ответ дан Peter 21 August 2018 в 19:28
поделиться
  • 1
    Только то, что я искал, так как я действительно хотел скрыть полосы прокрутки, но элементы все еще прокручиваются (например, клавиши вверх / вниз) – Mathias 25 January 2013 в 22:35
  • 2
    +1 хорошо работает для мобильных устройств! – mreq 14 March 2013 в 16:12
  • 3
    это должен быть лучший ответ, поскольку другие решения не позволяют вам прокручивать – nuway 4 April 2013 в 21:53
  • 4
    Поддерживает ли это другие браузеры помимо webkit? Потому что это не работает в mozilla. – Rupam Datta 8 April 2013 в 07:25
  • 5
    Тем не менее, есть запрос функции на трекер Mozilla. Возможно, вы сможете ускорить реализацию, проголосовав за нее там :) – Peter 28 May 2013 в 08:14

Мой ответ будет прокручиваться даже тогда, когда overflow:hidden;, используя jquery

, например, прокручивать по горизонтали с помощью колеса мыши:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script type='text/javascript' src='/js/jquery.mousewheel.min.js'></script>
<script type="text/javascript">
 $(function() {

   $("YourSelector").mousewheel(function(event, delta) {

      this.scrollLeft -= (delta * 30);

      event.preventDefault();

   });

});
</script>
2
ответ дан Rasel 21 August 2018 в 19:28
поделиться

Если вы хотите, чтобы прокрутка работала, перед тем, как скрывать полосы прокрутки, подумайте о том, чтобы имитировать их. Современные версии OS X и мобильных ОС имеют полосы прокрутки, которые, хотя и непрактичны для захвата мышью, довольно красивы и нейтральны.

Чтобы скрыть полосы прокрутки, используется метод Джона Курлака за исключением того, что пользователи Firefox, у которых нет сенсорных панелей, не имеют возможности прокручивать, если у них нет мыши с колесом, что они, вероятно, делают, но даже тогда они обычно могут прокручивать только вертикально.

Техника Джона использует три элемента:

  • Внешний элемент для маскировки полос прокрутки.
  • Средний элемент для полос прокрутки.
  • И элемент содержимого для обоих установите размер среднего элемента и сделайте его полосками прокрутки.

Должно быть возможно установить размер внешнего и содержимого элементов одинаково, что исключает использование процентов, но я не могу подумайте о чем-нибудь еще, что не будет работать с правильной настройкой.

Моя самая большая проблема заключается в том, устанавливают ли все версии браузеров полосы прокрутки для отображения видимого переполненного содержимого v isible. Я тестировал в текущих браузерах, но не старше.

Простите мой SASS ; P

%size {
    // set width and height
}

.outer {
    // mask scrollbars of child
    overflow: hidden;
    // set mask size
    @extend %size;
    // has absolutely positioned child
    position: relative;
}

.middle {
    // always have scrollbars.
    // don't use auto, it leaves vertical scrollbar showing
    overflow: scroll;
    // without absolute, the vertical scrollbar shows
    position: absolute;
}
// prevent text selection from revealing scrollbar, which it only does on
// some webkit based browsers.
.middle::-webkit-scrollbar {
    display: none;
}

.content {
    // push scrollbars behind mask
    @extend %size;
}

Тестирование

ОС X равно 10.6.8. Windows - Windows 7.

  • Firefox 32.0 Скрытые полосы скрыты. Клавиши со стрелками не прокручиваются, даже после нажатия на фокусировку, но колесико мыши и два пальца на трекпаде. OS X и Windows.
  • Chrome 37.0 Скроллинг скрыт. Клавиши со стрелками работают после нажатия на фокус. Работа колесика мыши и трекпада. OS X и Windows.
  • Скрытые полосы браузера Internet Explorer 11. Клавиши со стрелками работают после нажатия на фокус. Колесо мыши работает. Windows.
  • Safari 5.1.10 Скроллинг скрыт. Клавиши со стрелками работают после нажатия на фокус. Работа колесика мыши и трекпада. OS X.
  • Android 4.4.4 и 4.1.2. Полосы прокрутки скрыты. Нажмите прокрутку. Пробовал в Chrome 37.0, Firefox 32.0 и HTMLViewer в 4.4.4 (что бы это ни было). В HTMLViewer страница представляет собой размер маскированного контента и может также прокручиваться! Скроллинг взаимодействует с масштабированием страницы.
5
ответ дан Seth W. Klein 21 August 2018 в 19:28
поделиться
  • 1
    Несвязанное примечание (по вопросу). В этом случае вы должны использовать @extend против @include. Поэтому вместо @mixin{} вы сделали бы %size{}, затем в селекторах css вызовите @extend %size;. Микшины обычно используются, когда вы тянете переменные, чтобы вернуть результат. Заполнители (aka @extend) предназначены для простого повторного кода, подобного этому, - где no & quot; function & quot; необходим. – Mike Barwick 12 December 2014 в 05:24
  • 2
    Я отредактировал, чтобы использовать @extend. Результат, вероятно, менее понятен людям, которые не знают SCSS, но достаточно хорошо. – Seth W. Klein 12 March 2015 в 21:35

Использовать свойство переполнения css :

.noscroll {
  width:150px;
  height:150px;
  overflow: auto; /* or hidden, or visible */
}

Вот еще несколько примеров:

10
ответ дан Shabbir Dhangot 21 August 2018 в 19:28
поделиться

Я считаю, что вы можете манипулировать им с помощью атрибута CSS переполнения, но у них ограниченная поддержка браузера. Один источник сказал, что это IE5 +, Firefox 1.5+ и Safari 3+ - возможно, для ваших целей.

Эта ссылка имеет хорошее обсуждение: http://www.search-this.com / 2008/03/26 / прокрутка прокрутка прокрутка /

1
ответ дан Stefan Mohr 21 August 2018 в 19:28
поделиться
  • 1
    Хорошая ссылка. Приятно знать, как результат в нескольких браузерах. К сожалению, рисунок скриншота о законченных результатах нарушен – Chetabahana 3 September 2015 в 07:25

Вы можете выполнить это с помощью div-оболочки, у которого есть переполнение, и внутренний div установлен в auto.

Чтобы удалить полосу прокрутки внутреннего div, вы можете вытащить ее из окна просмотра внешнего div применяя отрицательный запас к внутреннему div. Затем примените равномерное дополнение к внутреннему div, чтобы содержимое оставалось в поле зрения.

JSFiddle

HTML

<div class="hide-scroll">
    <div class="viewport">
        ...
    </div>
</div>

CSS

.hide-scroll {
    overflow: hidden;
}

.viewport {
    overflow: auto;

    /* Make sure the inner div is not larger than the container
     * so that we have room to scroll.
     */
    max-height: 100%;

    /* Pick an arbitrary margin/padding that should be bigger
     * than the max width of all the scroll bars across
     * the devices you are targeting.
     * padding = -margin
     */
    margin-right: -100px;
    padding-right: 100px;
}
94
ответ дан thgaskell 21 August 2018 в 19:28
поделиться
  • 1
    Это должен быть принятый ответ imo. Единственное, что я должен был добавить, это height: inherited в .viewport css. – Helzgate 27 October 2015 в 15:38
  • 2
    Единственная проблема с этим ответом - "мертвый" пространство, оставленное перемещенной полосой прокрутки, потому что мы фактически не знаем ширины полосы прокрутки, чтобы вычесть ее из прокладки. – Frondor 26 April 2016 в 23:13
  • 3
    Кроме того, вам не нужно использовать фиксированные значения для заполнения и полей. 100% более универсален и выполняет свою работу. – Frondor 26 April 2016 в 23:29
  • 4
    Работали в IE11, Opera и Chrome, еще не протестировали Firefox. Это отличный ответ, +1. – almost a beginner 6 December 2016 в 02:39

my html подобен этому

<div class="container">
  <div class="content">
  </div>
</div>

добавьте это в свой div, где вы хотите скрыть полосу прокрутки

.content {
  position: absolute;
  right: -100px;
  overflow-y: auto;
  overflow-x: hidden;
  height: 75%; /*this can be any value of your choice*/
}

и добавить ее в контейнер

.container {
  overflow-x: hidden;
  max-height: 100%;
  max-width: 100%;
}
3
ответ дан Timo 21 August 2018 в 19:28
поделиться

Если вы ищете решение для скрытия полосы прокрутки для мобильных устройств, следуйте ответу Питера !

Вот jsfiddle , который использует ниже, чтобы скрыть горизонтальную полосу прокрутки.

.scroll-wrapper{
    overflow-x: scroll;
}
.scroll-wrapper::-webkit-scrollbar { 
    display: none; 
}

Протестировано на планшете Samsung с Android 4.0.4 (как в родном браузере, так и на Chrome) и на iPad с iOS 6 (оба в Safari & amp; Chrome).

11
ответ дан Community 21 August 2018 в 19:28
поделиться