div:after 已修复在父级可滚动容器中
div:after fixed in parent scrollable container
我正在尝试将半透明渐变放置在可滚动 <div>
容器上,以获得纯 CSS 的视觉效果。我希望渐变保持原样,而下面的内容可以滚动。当然,滚动条必须是可访问的。
我尝试将 :after
与位置 absolute
一起使用,但这样渐变也会滚动。使用位置 fixed
也不起作用。
旁注:容器中的内容是从数据库生成的。实际上,如果内容高度低于 100px,我不需要渐变,但我认为这是另一项任务。
这是我的代码:
#container {
position: relative;
max-height: 100px;
overflow-y: auto;
}
#container:after {
content: '';
display: block;
position: absolute;
left: 0;
top: 0;
right: 0;
bottom: 0;
background: linear-gradient(#eeeeee00, #eeeeeeff);
}
<div id="container">
Lorem<br><br> ipsum
<br><br> dolor
<br><br> sit
<br><br> amet
<br><br>
</div>
这里是 fiddle:https://jsfiddle.net/c6g89xm2/
你有什么想法吗?
这是一个使用 position:sticky
的小技巧,需要您知道身高值:
#container {
position: relative;
max-height: 100px;
overflow-y: auto;
}
#container:after {
content: '';
display: block;
position: sticky;
bottom:0;
margin-top:-100px;
height:100px;
background: linear-gradient(transparent, #eee);
}
<div id="container">
Lorem<br><br> ipsum
<br><br> dolor
<br><br> sit
<br><br> amet
<br><br>
</div>
你能为#container 创建父级并在父级上使用 :after 吗?像这样:
#container {
position: relative;
background: #fff;
max-height: 100px;
overflow-x: hidden;
overflow-y: auto;
border: 1px solid #ddd;
}
#parent-container {
position: relative;
}
#parent-container:after {
content: '';
display: block;
position: absolute;
z-index: 2;
left: 0%;
top: 0%;
width: 100%;
height: 100%;
background: linear-gradient(#aaffff99, #ffaaff99);
pointer-events: none;
}
<div id="parent-container">
<div id="container">
Lorem<br><br>
ipsum<br><br>
dolor<br><br>
sit<br><br>
amet<br><br>
</div>
</div>
我正在尝试将半透明渐变放置在可滚动 <div>
容器上,以获得纯 CSS 的视觉效果。我希望渐变保持原样,而下面的内容可以滚动。当然,滚动条必须是可访问的。
我尝试将 :after
与位置 absolute
一起使用,但这样渐变也会滚动。使用位置 fixed
也不起作用。
旁注:容器中的内容是从数据库生成的。实际上,如果内容高度低于 100px,我不需要渐变,但我认为这是另一项任务。
这是我的代码:
#container {
position: relative;
max-height: 100px;
overflow-y: auto;
}
#container:after {
content: '';
display: block;
position: absolute;
left: 0;
top: 0;
right: 0;
bottom: 0;
background: linear-gradient(#eeeeee00, #eeeeeeff);
}
<div id="container">
Lorem<br><br> ipsum
<br><br> dolor
<br><br> sit
<br><br> amet
<br><br>
</div>
这里是 fiddle:https://jsfiddle.net/c6g89xm2/
你有什么想法吗?
这是一个使用 position:sticky
的小技巧,需要您知道身高值:
#container {
position: relative;
max-height: 100px;
overflow-y: auto;
}
#container:after {
content: '';
display: block;
position: sticky;
bottom:0;
margin-top:-100px;
height:100px;
background: linear-gradient(transparent, #eee);
}
<div id="container">
Lorem<br><br> ipsum
<br><br> dolor
<br><br> sit
<br><br> amet
<br><br>
</div>
你能为#container 创建父级并在父级上使用 :after 吗?像这样:
#container {
position: relative;
background: #fff;
max-height: 100px;
overflow-x: hidden;
overflow-y: auto;
border: 1px solid #ddd;
}
#parent-container {
position: relative;
}
#parent-container:after {
content: '';
display: block;
position: absolute;
z-index: 2;
left: 0%;
top: 0%;
width: 100%;
height: 100%;
background: linear-gradient(#aaffff99, #ffaaff99);
pointer-events: none;
}
<div id="parent-container">
<div id="container">
Lorem<br><br>
ipsum<br><br>
dolor<br><br>
sit<br><br>
amet<br><br>
</div>
</div>