【发布时间】:2019-01-24 11:13:08
【问题描述】:
我要做的是在内容滚动时向父容器添加顶部和底部阴影。除了视网膜屏幕上的 Chrome 之外,它在任何地方都能很好地工作。它的行为很奇怪。当内容滚动时,背景会卡在顶部、底部或两者兼而有之。
.container {
width: 300px;
height: 150px;
position: fixed;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
border: 1px solid #eee;
overflow: auto;
background:
linear-gradient(white 30%,rgba(255,255,255,0)),
linear-gradient(rgba(255,255,255,0),white 70%) 0 100%,
radial-gradient(farthest-side at 50% 0,rgba(0,0,0,.3),rgba(0,0,0,0)),
radial-gradient(farthest-side at 50% 100%,rgba(0,0,0,.3),rgba(0,0,0,0)) 0 100%;
background-repeat: no-repeat;
background-color: white;
background-size: 100% 20px,100% 20px,100% 10px,100% 10px;
background-attachment: local,local,scroll,scroll;
}
.content {
padding: 15px 10px;
color: #555;
}
<div class="container">
<div class="content">
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusamus iure repellendus tenetur totam possimus reiciendis error beatae nisi eligendi eveniet sit ullam, delectus dolorem voluptatum qui esse quod maxime praesentium cum perspiciatis dignissimos quam vero illum eius quisquam. Fugit ducimus repudiandae nisi corporis illo quo atque, aliquid. Perferendis labore vero quae officia eaque deserunt delectus, ipsa reiciendis vel eveniet, adipisci magni, possimus eum ipsum non laborum. Aspernatur iste, ratione eaque necessitatibus iure ipsum velit nobis quisquam explicabo quis voluptas inventore sapiente veniam, exercitationem assumenda natus eligendi! Soluta omnis blanditiis non dolor voluptates quo, est provident beatae enim id, numquam molestias placeat quibusdam. Facere expedita aliquam natus id nobis dolorem laboriosam omnis saepe, itaque adipisci, deleniti praesentium quidem maiores vitae, enim neque aperiam dolore impedit non illo accusamus ab consequatur quia vel. Fugit fugiat, quis iste sit recusandae maxime earum officiis. Temporibus doloremque quasi odit, voluptate, at, voluptates labore neque nesciunt tenetur voluptatum debitis aliquid delectus? Error architecto porro illo velit autem in voluptates cum accusantium aut maiores quam maxime consequuntur possimus labore commodi odit vero ipsam libero, aliquid iure quod temporibus, molestias delectus. Consectetur obcaecati, rem laborum tempore! Dolorem explicabo nisi accusamus qui soluta amet mollitia laboriosam illum molestias et.
</div>
</div>
我推测 background-attachment 属性会以某种方式导致它。
【问题讨论】:
-
FWIW,一种替代方法是在
.container和.content之间创建一个包装器,并给它overflow: auto而不是.container。向.container添加伪元素,这些伪元素绝对位于其顶部和底部,具有渐变背景。将padding-bottom添加到新包装器中,与底部伪高度相同。这会给你一个类似的效果,但一个问题是,为了在滚动之前使容器顶部的阴影不可见/滚动后容器的底部,你必须在白色背景的顶部。 -
@cjl750 感谢您的回答。无需创建包装器。请参阅下面的代码 sn-p。
标签: html css google-chrome retina-display