Reputation: 6936
I am trying to create a simple scrolling parent div. in which child div should be stacked horizontally.
But it is not working. child divs are wrapped after div width end. Please help.
#outerContainer {
width: 100%;
height: 150px;
background: red;
overflow: hidden;
overflow-x: scroll;
}
.card {
float: left;
display: inline-block;
width: 100px;
height: 150px;
margin-right: 10px;
background: #fff;
}
<div id="outerContainer">
<div class="card"></div>
<div class="card"></div>
<div class="card"></div>
<div class="card"></div>
<div class="card"></div>
<div class="card"></div>
<div class="card"></div>
</div>
Upvotes: 0
Views: 2179
Reputation: 3785
Just remove float:left;
from .card
class and add white-space:nowrap;
in #outerContainer
#outerContainer {
width: 100%;
height: 150px;
background: red;
overflow: hidden;
overflow-x: auto;
white-space: nowrap;
}
.card {
display: inline-block;
width: 100px;
height: 150px;
margin-right: 10px;
background: #fff;
}
<div id="outerContainer">
<div class="card"></div>
<div class="card"></div>
<div class="card"></div>
<div class="card"></div>
<div class="card"></div>
<div class="card"></div>
<div class="card"></div>
</div>
Upvotes: 1
Reputation: 1
#outerContainer {
width: 100%;
height: 150px;
background: red;
overflow: hidden;
overflow-x: scroll;
display: flex;
}
.card {
min-width: 100px;
height: 150px;
margin-right: 10px;
background: #fff;
}
<div id="outerContainer">
<div class="card"></div>
<div class="card"></div>
<div class="card"></div>
<div class="card"></div>
<div class="card"></div>
<div class="card"></div>
<div class="card"></div>
</div>
Your card
elements go to second row. flex
can make it a bit easier.
Upvotes: 0
Reputation: 46
#outerContainer {
width: 100%;
height: 150px;
background: red;
overflow: hidden;
overflow-x: scroll;
white-space:nowrap;
}
.card {
display: inline-block;
width: 100px;
height: 150px;
margin-right: 10px;
background: #fff;
}
Upvotes: 3