Reputation: 13733
I have a list of items inside a scrollable container. Each item has a :hover
style applied. The problem is that if the container is scrolled, then the background gets cropped away, although content is fully visible.
How do I make the DIVs to stretch to full width of content, so it is highlighted entirely when hovering?
Here is a Plunkr
You can see that when you scroll horizontally to about halfway and then hover on items, only some part of them becomes red:
.box-container {
white-space: nowrap;
min-width: 100%;
max-height: 100px;
border:1px solid red;
overflow: auto;
cursor: pointer;
}
.item-container div:hover {
background-color: red;
}
<div style="width:300px;">
<div class="box-container">
<div class="item-container">
<div>Lorem ipsum Lorem ipsum Lorem ipsum Lorem ipsum Lorem ipsum Lorem ipsum</div>
<div>Lorem ipsum Lorem ipsum Lorem ipsum Lorem ipsum Lorem ipsum Lorem ipsum</div>
<div>Lorem ipsum Lorem ipsum Lorem ipsum Lorem ipsum Lorem ipsum Lorem ipsum</div>
<div>Lorem ipsum Lorem ipsum Lorem ipsum Lorem ipsum Lorem ipsum Lorem ipsum</div>
<div>Lorem ipsum Lorem ipsum Lorem ipsum Lorem ipsum Lorem ipsum Lorem ipsum</div>
<div>Lorem ipsum Lorem ipsum Lorem ipsum Lorem ipsum Lorem ipsum Lorem ipsum</div>
<div>Lorem ipsum Lorem ipsum Lorem ipsum Lorem ipsum Lorem ipsum Lorem ipsum</div>
<div>Lorem ipsum Lorem ipsum Lorem ipsum Lorem ipsum Lorem ipsum Lorem ipsum</div>
<div>Lorem ipsum Lorem ipsum Lorem ipsum Lorem ipsum Lorem ipsum Lorem ipsum</div>
</div>
</div>
</div>
Upvotes: 1
Views: 279
Reputation: 78686
It sounds bit hacky, but works. table
behaves in between inline and block level, the width is decided by the content and forces line break.
.item-container div {
display: table;
}
.box-container {
white-space: nowrap;
min-width: 100%;
max-height: 100px;
border:1px solid red;
overflow: auto;
cursor: pointer;
}
.item-container div {
display: table;
}
.item-container div:hover {
background-color: red;
}
<div style="width:300px;">
<div class="box-container">
<div class="item-container">
<div>Lorem ipsum Lorem ipsum Lorem ipsum Lorem ipsum Lorem ipsum Lorem ipsum</div>
<div>Lorem ipsum Lorem ipsum Lorem ipsum Lorem ipsum Lorem ipsum Lorem ipsum</div>
<div>Lorem ipsum Lorem ipsum Lorem ipsum Lorem ipsum Lorem ipsum Lorem ipsum</div>
<div>Lorem ipsum Lorem ipsum Lorem ipsum Lorem ipsum Lorem ipsum Lorem ipsum</div>
<div>Lorem ipsum Lorem ipsum Lorem ipsum Lorem ipsum Lorem ipsum Lorem ipsum</div>
<div>Lorem ipsum Lorem ipsum Lorem ipsum Lorem ipsum Lorem ipsum Lorem ipsum</div>
<div>Lorem ipsum Lorem ipsum Lorem ipsum Lorem ipsum Lorem ipsum Lorem ipsum</div>
<div>Lorem ipsum Lorem ipsum Lorem ipsum Lorem ipsum Lorem ipsum Lorem ipsum</div>
<div>Lorem ipsum Lorem ipsum Lorem ipsum Lorem ipsum Lorem ipsum Lorem ipsum</div>
</div>
</div>
</div>
Upvotes: 4