Horizontal Scroll Container (hidden scrollbar)
by psycketom
HTML
<div class="document">
<div class="tab-container">
<div class="horizontal-overflow-mask">
<div class="tab-entries">
<a class="tab-entry is-active">Craftsmen</a>
<a class="tab-entry">Creative</a>
<a class="tab-entry">Learning</a>
<a class="tab-entry">Agile</a>
<a class="tab-entry">Caring</a>
</div>
</div>
</div>
<div class="content">
<p>
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Eos quas deserunt atque neque praesentium. Iste enim quas, magnam vero. Aspernatur doloribus cum suscipit, commodi molestias tempore unde numquam quo iusto.
</p>
<p>
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Soluta, deleniti.
</p>
</div>
</div>
SCSS
*, *:before, *:after {
box-sizing: border-box;
}
body {
margin: 0;
}
p {
margin: 0;
}
.document {
max-width: 240px;
margin: 20px;
}
.tab-container {
line-height: 1 !important; // reset line height
height: calc(1em + 20px + 2px); // font-size + #1 (padding) + #2 (border)
overflow: hidden;
margin-bottom: 10px;
}
.horizontal-overflow-mask {
height: 100%;
box-sizing: content-box;
padding-bottom: 30px;
overflow-x: scroll;
overflow-y: hidden;
}
.tab-entries {
display: inline-flex;
align-items: flex-start;
padding-left: 10px;
padding-right: 10px;
}
.tab-entry {
display: block;
padding-top: 10px; // #1
padding-bottom: 10px; // #1
border-bottom: solid 2px transparent; // #2
// border-left: solid 1px green;
// border-right: solid 1px green;
&.is-active {
border-bottom-color: red;
}
+ .tab-entry {
margin-left: 20px;
}
}
.content {
padding: 20px;
border: solid 1px black;
p {
+ p {
margin-top: 1.4em;
}
}
}