Firefox에서 스크롤바를 숨기는 방법?


84

방금 Google 크롬에서 스크롤바를 숨기는 방법을 찾았습니다. 다음 코드로 수행했습니다.

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

유일한 문제는 이것이 Firefox에서 작동하지 않는다는 것입니다. 여러 가지 방법을 시도했지만 여전히 작동하지 않습니다.


2
그렇게하는 것은 좋은 생각이 아닌 것 같습니다. html, body에 숨겨진 CSS 오버플로를 사용하고 높이와 너비가 100 % 인 래퍼 div를 사용합니다.
Abhitalks 2014 년

이것은 너무 명백 할 수 있지만 Firefox 용 -moz-를 사용해 보셨습니까? 나는 abhitalks에 동의하지만, 이것은 그것을하는 좋은 방법처럼 보이지 않습니다.
Myles


하나의 작업 솔루션 stackoverflow.com/questions/5820304/…
IvanM

답변:


118

scrollbar-width규칙을 사용할 수 있습니다 . 당신은 할 수 scrollbar-width: none;Firefox에서 스크롤바를 숨기고 여전히 자유롭게 스크롤 할 수 있습니다.

body {
   scrollbar-width: none;
}

오타가 있지만 이것이 허용되는 해결책입니다.
shirajg

7
이 기능은 최신 브라우저에서 작동하지만 아직 실험적인 기능 입니다. 또한이 속성은 스크롤바를 생성하는 요소와 함께 사용해야합니다. 예를 들어 Angular Material을 사용 md-content하는 경우 본문이 스크롤바를 생성하지 않고 md-content요소가 생성합니다 . 따라서 body { scrollbar-width: none; }작동하지 않지만 작동 md-content { scrollbar-width:none; }합니다.
Sajib Acharya

고마워요, 당신은 저에게 많은 시간을 절약했습니다 !!
John

23

Chrome, Firefox 및 IE에서 스크롤 막대를 숨기려면 다음을 사용할 수 있습니다.

.hide-scrollbar
{
    overflow: auto;
    -ms-overflow-style: none; /* IE 11 */
    scrollbar-width: none; /* Firefox 64 */
}

20

스크롤바를 숨길 수 있었지만 여전히이 솔루션을 사용하여 마우스 휠로 스크롤 할 수 있습니다.

html {overflow: -moz-scrollbars-none;}

https://github.com/brandonaaron/jquery-mousewheel 플러그인을 다운로드 하고 다음 기능을 포함합니다.

jQuery('html,body').bind('mousewheel', function(event) {
    event.preventDefault();
    var scrollTop = this.scrollTop;
    this.scrollTop = (scrollTop + ((event.deltaY * event.deltaFactor) * -1));
    //console.log(event.deltaY, event.deltaFactor, event.originalEvent.deltaMode, event.originalEvent.wheelDelta);
  });

13
이것은 "overflow : hidden;"과 같은 것 같습니다. 스크롤 :-( 허용하지 않습니다

나를 위해 작동합니다-가로 스크롤바가 이제 Firefox에서 숨겨집니다. 감사!
Liran H

4
파이어 폭스 63로, 이것은 단지 당신이 설정 한 경우 작동 layout.css.overflow.moz-scrollbars.enabledtrue생산 사용하기에 적합하지 않다, 파이어 폭스의 기능 설정에. developer.mozilla.org/en-US/docs/Web/CSS/overflow#Deprecated
Josh

그것은 나를 위해 속임수를 쓰지 않았지만 scrollbar-width : none; HTML 내부에서.
slodeveloper

8

이것은 Firefox, Chrome 및 Edge에서 스크롤을 유지하면서 스크롤바를 비활성화하는 데 필요한 것입니다.

          @-moz-document url-prefix() { /* Disable scrollbar Firefox */
            html{
              scrollbar-width: none;
            }
          }
          body {
            margin: 0; /* remove default margin */
            scrollbar-width: none; /* Also needed to disable scrollbar Firefox */
            -ms-overflow-style: none;  /* Disable scrollbar IE 10+ */
            overflow-y: scroll;
          }
          body::-webkit-scrollbar {
            width: 0px;
            background: transparent; /* Disable scrollbar Chrome/Safari/Webkit */
          }

5

웹킷의 경우 다음을 사용하십시오.

::-webkit-scrollbar {
    width: 0px;  /* remove scrollbar space */
    background: transparent;  /* optional: just make scrollbar invisible */
}

Mozilla Firefox의 경우 다음 코드를 사용하십시오.

@-moz-document url-prefix() {
    html,body{overflow: hidden !important;}
}

스크롤이 작동하지 않으면

element {overflow-y: scroll;}

특정 요소에


4

이것은 일반적인 솔루션입니다.

<div class="outer">
 <div class="inner">
    Some content...
 </div>
</div>

<style>
 .outer {
 overflow: hidden;
}
 .inner {
 margin-right: -16px;
 overflow-y: scroll;
 overflow-x: hidden;
}
</style>

스크롤 막대는 상위 div에 의해 숨겨집니다.

이를 위해서는 상위 div에서 overflow : hidden을 사용해야합니다.


3
작동하지만 16px가 스크롤바의 너비라고 가정하므로 신뢰할 수 없습니다.
igorpavlov

46
복사 할 때 실제 저자 @chowey에게 크레딧을 제공하십시오. stackoverflow.com/questions/15394065/…
Rexhin

내부 div 콘텐츠가 화면 너비보다 길면 FF 56에서 작동하지 않습니다
Mr Jedi

3
이 수정은 FF 문제를 해결하지만 다른 브라우저에서는 더 나쁜 부작용이 있습니다 (텍스트 자르기)
Kosmonaft

내 앱을 스크롤해야하는 모든 div에서 사용하는 것을 쉽게 볼 수 있습니다.
Philippe

3

최신 버전의 Firefox의 경우 이전 솔루션이 더 이상 작동하지 않지만 v66.0.3에서 scrollbar-color설정 가능한 속성 transparent transparent과 데스크톱의 Firefox에서 스크롤 막대를 적어도 보이지 않게 만드는 속성을 성공적으로 사용 했습니다. 뷰포트와 모바일에서는 작동하지 않지만 스크롤바가 오른쪽에있는 콘텐츠 위에 놓인가는 선입니다.

overflow-y: auto; //or hidden if you don't want horizontal scrolling
overflow-y: auto;
scrollbar-color: transparent transparent;

FF70 +에서는 어떻게합니까? scrollbar-width: none;더 이상 작동하지 않습니다. 스크롤바를 투명하게 만드는 것이 아니라 숨길 필요가 있습니다.
유전자 b.


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

Firefox가 기능이있는 숨겨진 스크롤바에 대한 지원을 포기했기 때문에 Firefox에서는 작동하지 않습니다 ( overflow: -moz-scrollbars-none;이전 버전에서 사용할 수 있음 ).


1

만일 누군가가 파이어 폭스 (79.0)에서 스크롤바를 보이지 않게 만드는 해킹을 찾고 있다면.

다음은 Chrome, IE, Safari에서 성공적으로 작동하고 Firefox에서 스크롤바를 투명하게 만드는 솔루션입니다. 위의 어느 것도 스크롤바를 숨기는 데 firefox (79.0)에서 작동하지 않았습니다.

누구든지 색을 바꾸지 않고 할 수있는 방법을 찾으면 큰 도움이 될 것입니다. Pls는 아래에 설명합니다.

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

.scrollhost ::-moz-scrollbar {
  display: none;
 
}
 
.scrollhost {
  overflow: auto;
  -ms-overflow-style: none;
  scrollbar-color: transparent transparent; /*just hides the scrollbar for firefox */
}

0

이것을 사용해보십시오 :

overflow-y: -moz-hidden-unscrollable;


2
숨겨 scrollbar지지만 스크롤 동작을 중지합니다. overflow-y: -moz-hidden-unscrollable;과 의 차이점은 무엇입니까 overflow: hidden? 사실 아무것도 아니기 때문에 정답이 아닙니다. 하지만 나는 당신에게 투표합니다. 감사.
AmerllicA

2
차이점은 첫 번째는 파이어 폭스에서만 숨긴다는 것입니다
peeter

내가 당신에게 투표했지만 왜 당신이 나에게 이상합니다 -2? 당신의 대답은 정확합니다
AmerllicA

문제는 스크롤바를 숨기는 방법이지만 스크롤을 완전히 비활성화하는 것이 아니라 콘텐츠가 오버플로 될 때 필요한 경우 사용자가 스크롤 할 수 있도록하는 방법입니다. 그 이유는 FF 스크롤바가보기 흉하고 콘텐츠가 넘치지 않더라도 가끔 나타나기 때문입니다. 다른 모든 브라우저는이를 위해 간단하고 우아한 CSS 솔루션을 제공합니다. IE도 마찬가지입니다!
Philippe

0

특정 경우 (요소가 화면 오른쪽에 있거나 상위 오버플로가 숨겨져 있음)가 해결책이 될 수 있습니다.

@-moz-document url-prefix() {
  .element {
    margin-right: -15px;
  }
}

0

나는 모든 것을 시도했고 내 솔루션에 가장 적합한 것은 항상 세로 스크롤 막대를 표시 한 다음 약간의 음수 여백을 추가하여 숨기는 것이 었습니다.

이것은 IE11, FF60.9 및 Chrome 80에서 작동했습니다.

body {
  -ms-overflow-style: none; /** IE11 */
  overflow-y: scroll;
  overflow-x: hidden;
  margin-right: -20px;
}

0

나는 그것을 사용 ReactJS 나를 위해 일하고있어 create-react-app내에서 이것을 넣어 App.css:

@-moz-document url-prefix() {
  html,
  body {
    scrollbar-width: none;
  }
}

또한 body요소에는overflow: auto

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.