Reputation: 17408
Is there a way I can remove or transparent all scrollbar pieces by using CSS in Firefox 59.0
?
The css syntax doesn't work for me: overflow: -moz-scrollbars-none
.
I ended up trying to solve it as follows:
* {
box-sizing: border-box;
font-family: Roboto, sans-serif;
}
.container {
display: flex;
flex-direction: row;
width: 30rem;
height: 22rem;
border-radius: 3rem;
border: solid 0.2rem #b2b2c2;
background-color: LightSlateGray;
display: flex;
align-items: center;
justify-content: center;
}
.scrollport:before,
.scrollport:after {
content: "";
}
.scrollport {
display: flex;
flex-direction: column;
flex-wrap: nowrap;
width: 9.4rem;
height: 22rem;
overflow: auto;
scroll-snap-type: y mandatory;
scrollbar-width: none;
}
.scrollport:before,
.scrollport:after,
.cell {
display: block;
scroll-snap-align: center;
flex-grow: 1;
flex-shrink: 0;
flex-basis: 33.3%;
display: flex;
justify-content: center;
align-items: center;
font-size: 2.4rem;
}
<div class="container">
<div class="scrollport">
<div class="cell">🍎</div>
<div class="cell">🍊</div>
<div class="cell">🍌</div>
<div class="cell">🍉</div>
<div class="cell">🍇</div>
<div class="cell">🍓</div>
</div>
<div class="scrollport">
<div class="cell">🍌</div>
<div class="cell">🍉</div>
<div class="cell">🍇</div>
<div class="cell">🍓</div>
<div class="cell">🍎</div>
<div class="cell">🍊</div>
</div>
<div class="scrollport">
<div class="cell">🍎</div>
<div class="cell">🍊</div>
<div class="cell">🍇</div>
<div class="cell">🍓</div>
<div class="cell">🍌</div>
<div class="cell">🍉</div>
</div>
</div>
Another attempt involves two divs (scrollport
and child
).
* {
box-sizing: border-box;
font-family: Roboto, sans-serif;
}
.container {
display: flex;
flex-direction: row;
width: 30rem;
height: 22rem;
border-radius: 3rem;
border: solid 0.2rem #b2b2c2;
background-color: LightSlateGray;
display: flex;
align-items: center;
justify-content: center;
}
.scrollport {
display: flex;
flex-direction: column;
flex-wrap: nowrap;
width: 9.4rem;
height: 22rem;
scroll-snap-type: y mandatory;
overflow: hidden;
}
.child:before,
.child:after {
content: "";
}
.child {
height: 100%;
margin-right: -5rem;
/* maximum width of scrollbar */
padding-right: 5rem;
/* maximum width of scrollbar */
overflow-y: scroll;
}
.child:before,
.child:after,
.cell {
display: block;
scroll-snap-align: center;
flex-grow: 1;
flex-shrink: 0;
flex-basis: 33.3%;
display: flex;
justify-content: center;
align-items: center;
font-size: 2.4rem;
}
<div class="container">
<div class="scrollport">
<div class="child">
<div class="cell">🍎</div>
<div class="cell">🍐</div>
<div class="cell">🍊</div>
<div class="cell">🍋</div>
<div class="cell">🍌</div>
<div class="cell">🍉</div>
<div class="cell">🍇</div>
<div class="cell">🍓</div>
</div>
</div>
<div class="scrollport">
<div class="child">
<div class="cell">🍌</div>
<div class="cell">🍉</div>
<div class="cell">🍇</div>
<div class="cell">🍓</div>
<div class="cell">🍎</div>
<div class="cell">🍐</div>
<div class="cell">🍊</div>
<div class="cell">🍋</div>
</div>
</div>
<div class="scrollport">
<div class="child">
<div class="cell">🍎</div>
<div class="cell">🍐</div>
<div class="cell">🍊</div>
<div class="cell">🍇</div>
<div class="cell">🍓</div>
<div class="cell">🍋</div>
<div class="cell">🍌</div>
<div class="cell">🍉</div>
</div>
</div>
</div>
Upvotes: 0
Views: 213
Reputation: 327
You can't modify scrollbar design in Firefox, but if want to hide that scrollbar, Then use margin-left
negative value.
* {
box-sizing: border-box;
font-family: Roboto, sans-serif;
}
.container {
display: flex;
flex-direction: row;
width: 30rem;
height: 22rem;
border-radius: 3rem;
border: solid 0.2rem #b2b2c2;
background-color: LightSlateGray;
display: flex;
align-items: center;
justify-content: center;
overflow: hidden;
position: relative;
}
.scrollport:before,
.scrollport:after {
content: "";
}
.scrollport {
display: flex;
flex-direction: column;
flex-wrap: nowrap;
width: 9.4rem;
height: 22rem;
overflow: auto;
scroll-snap-type: y mandatory;
scrollbar-width: none;
margin-left: -20px;
background: LightSlateGray;
}
.scrollport:before,
.scrollport:after,
.cell {
display: block;
scroll-snap-align: center;
flex-grow: 1;
flex-shrink: 0;
flex-basis: 33.3%;
display: flex;
justify-content: center;
align-items: center;
font-size: 2.4rem;
}
.container:before {
content: '';
position: absolute;
top: 0;
bottom: 0;
width: 21px;
background: LightSlateGray;
right: 38px;
}
<div class="container">
<div class="scrollport">
<div class="cell">🍎</div>
<div class="cell">🍊</div>
<div class="cell">🍌</div>
<div class="cell">🍉</div>
<div class="cell">🍇</div>
<div class="cell">🍓</div>
</div>
<div class="scrollport">
<div class="cell">🍌</div>
<div class="cell">🍉</div>
<div class="cell">🍇</div>
<div class="cell">🍓</div>
<div class="cell">🍎</div>
<div class="cell">🍊</div>
</div>
<div class="scrollport">
<div class="cell">🍎</div>
<div class="cell">🍊</div>
<div class="cell">🍇</div>
<div class="cell">🍓</div>
<div class="cell">🍌</div>
<div class="cell">🍉</div>
</div>
</div>
Upvotes: 1