Reputation: 1500
How do I get the scrollbar to overlay div content?
already tried to use track
with transparent background, but it does not work
::-webkit-scrollbar-track {background: transparent}
remains the same, occupying part of the content
.faq-body {
width: 250px;
height: 400px;
background: #fff;
overflow: scroll;
border: 1px solid #7b7d7f;
}
.faq-body::-webkit-scrollbar {
width: 16px;
}
.faq-body::-webkit-scrollbar-thumb {
background-color: #7b7d7f;
border: 5px solid #fff;
border-radius: 10rem;
}
.faq-body::-webkit-scrollbar-track {
position: absolute;
right: -3rem;
top: -50rem;
background: transparent;
}
.faq-question {
padding: 20px;
border-bottom: 1px solid #000;
line-height: 1.3;
color: #15191b;
font-size: 0.8rem;
}
<div class="faq-body">
<div class="faq-question">
Question
</div>
<div class="faq-question">
Question
</div>
<div class="faq-question">
Question
</div>
<div class="faq-question">
Question
</div>
<div class="faq-question">
Question
</div>
<div class="faq-question">
Question
</div>
<div class="faq-question">
Question
</div>
<div class="faq-question">
Question
</div>
<div class="faq-question">
Question
</div>
<div class="faq-question">
Question
</div>
<div class="faq-question">
Question
</div>
<div class="faq-question">
Question
</div>
<div class="faq-question">
Question
</div>
<div class="faq-question">
Question
</div>
<div class="faq-question">
Question
</div>
<div class="faq-question">
Question
</div>
</div>
Can someone help me?
Upvotes: 47
Views: 52029
Reputation: 1133
There are two ways to get a similar result:
Javascript Lib
Use http://grsmto.github.io/simplebar/
https://jsfiddle.net/w0a5Ls6h/
Pro:
Cons:
or
Only CSS
.faq-body {
width: 250px;
height: 400px;
background: #fff;
overflow-y: scroll;
border: 1px solid #7b7d7f;
}
.faq-body::-webkit-scrollbar {
width: 7px;
}
.faq-body::-webkit-scrollbar-thumb {
background-color: rgba(0,0,0,0.4);
border-radius: 10rem;
border: 1px solid #fff;
}
.faq-body::-webkit-scrollbar-track-piece:start {
background: transparent;
}
.faq-body::-webkit-scrollbar-track-piece:end {
background: transparent;
}
.faq-question {
padding: 20px;
border-bottom: 1px solid #000;
line-height: 1.3;
color: #15191b;
font-size: 0.8rem;
}
<div class="faq-body">
<div class="faq-question">
Question
</div>
<div class="faq-question">
Question
</div>
<div class="faq-question">
Question
</div>
<div class="faq-question">
Question
</div>
<div class="faq-question">
Question
</div>
<div class="faq-question">
Question
</div>
<div class="faq-question">
Question
</div>
<div class="faq-question">
Question
</div>
<div class="faq-question">
Question
</div>
<div class="faq-question">
Question
</div>
<div class="faq-question">
Question
</div>
<div class="faq-question">
Question
</div>
<div class="faq-question">
Question
</div>
<div class="faq-question">
Question
</div>
<div class="faq-question">
Question
</div>
<div class="faq-question">
Question
</div>
</div>
Cons:
Upvotes: 12
Reputation: 2626
overflow: overlay
works in some browsers (Chrome, Edge) but not Firefox. Supposedly scrollbar-gutter
is suppose to help, but it doesn't look like any browsers have implemented this yet.
Here's a reference to browser support: https://caniuse.com/css-overflow-overlay
.faq-body {
width: 250px;
height: 400px;
background: #fff;
overflow-y: overlay;
border: 1px solid #7b7d7f;
}
.faq-body::-webkit-scrollbar {
width: 16px;
}
.faq-body::-webkit-scrollbar-thumb {
background-color: #7b7d7f;
border: 5px solid #fff;
border-radius: 10rem;
}
.faq-body::-webkit-scrollbar-track {
position: absolute;
right: -3rem;
top: -50rem;
background: transparent;
}
.faq-question {
padding: 20px;
border-bottom: 1px solid #000;
line-height: 1.3;
color: #15191b;
font-size: 0.8rem;
}
<div class="faq-body">
<div class="faq-question">
Question
</div>
<div class="faq-question">
Question
</div>
<div class="faq-question">
Question
</div>
<div class="faq-question">
Question
</div>
<div class="faq-question">
Question
</div>
<div class="faq-question">
Question
</div>
<div class="faq-question">
Question
</div>
<div class="faq-question">
Question
</div>
<div class="faq-question">
Question
</div>
<div class="faq-question">
Question
</div>
<div class="faq-question">
Question
</div>
<div class="faq-question">
Question
</div>
<div class="faq-question">
Question
</div>
<div class="faq-question">
Question
</div>
<div class="faq-question">
Question
</div>
<div class="faq-question">
Question
</div>
</div>
Upvotes: 7