【发布时间】:2020-04-13 05:04:21
【问题描述】:
我从 2012 年找到了 this infamous article。它详细说明了如何创建滚动阴影并且仍然可以很好地工作,但我真的很想了解解决方案,但我似乎无法在网上找到必要的信息。
这是最初由@kizmarh 创建并由@leaverou 改进的缩小代码(blog-post):
.scrollbox {
overflow: auto;
width: 200px;
max-height: 150px;
background:
/* Shadow covers */
linear-gradient(white 30%, rgba(255, 255, 255, 0)),
linear-gradient(rgba(255, 255, 255, 0), white 70%) 0 100%,
/* Shadows */
radial-gradient(farthest-side at 50% 0, rgba(0, 0, 0, .2), rgba(0, 0, 0, 0)),
radial-gradient(farthest-side at 50% 100%, rgba(0, 0, 0, .2), rgba(0, 0, 0, 0)) 0 100%;
background-repeat: no-repeat;
background-color: white;
background-size: 100% 40px, 100% 40px, 100% 14px, 100% 14px;
background-attachment: local, local, scroll, scroll;
}
<div class="scrollbox">
<ul>
<li>Ah! Scroll below!</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
<li>6</li>
<li>7</li>
<li>8</li>
<li>9</li>
<li>10</li>
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
<li>6</li>
<li>7</li>
<li>8</li>
<li>9</li>
<li>10</li>
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
<li>6</li>
<li>7</li>
<li>8</li>
<li>The end!</li>
<li>No shadow there.</li>
</ul>
</div>
如果有人能解释一下这种效果是如何实现的?我想我得到了一般要点(如果无法通过背景附件实现进一步滚动,则有白色阴影覆盖黑色阴影),但我真的对以下一些事情感到困惑:
- 白色阴影如何覆盖黑色阴影,而其后面的内容仍然可见?
- 如何通过在声明后放置百分比来放置渐变 (
linear-gradient(...) n% n%)? - 为什么使用后台速记时代码不起作用?
-
farthest-side at 50% 0到底在做什么? - 为什么没有
background-color: white;就不行?
【问题讨论】:
标签: css background-image background-color linear-gradients radial-gradients