【问题标题】:CSS3 Fade Bottom of <section><section> 的 CSS3 淡入底部
【发布时间】:2012-05-23 02:24:50
【问题描述】:

我一直在寻找高低,但我没有找到使用linear-gradient&lt;section&gt; 标记的底部淡化为白色的CSS3 方法。

如果我不清楚,让我用一个例子来说明这一点。如果我有一个充满大量文本的&lt;section&gt; 标签,我希望在指定高度将文本截断。为了显示还有更多的文本要阅读,容器会显示一个白色渐变,部分覆盖最后一行左右,以表明还有更多的文本要阅读。

我知道这可以用 PNG 或 GIF 来完成,但我不知道如何用 CSS3 来做到这一点。有人可以举个例子吗?

感谢您的宝贵时间。

【问题讨论】:

  • 使用与处理 PNG 或 GIF 相同的方式,但将 PNG/GIF 图像切换为线性渐变?没有比这更简单的了……

标签: css background background-image linear-gradients


【解决方案1】:

你可以用一个额外的元素和一些 JavaScript 来做到这一点。像这样:

#some-section {
    position: relative;
}

#some-section .after {
    background-image: -webkit-linear-gradient(rgba(255, 255, 255, 0), white);
    background-image:    -moz-linear-gradient(rgba(255, 255, 255, 0), white);
    background-image:     -ms-linear-gradient(rgba(255, 255, 255, 0), white);
    background-image:      -o-linear-gradient(rgba(255, 255, 255, 0), white);
    background-image:         linear-gradient(rgba(255, 255, 255, 0), white);
    bottom: 0;
    left: 0;
    height: 20px; /* Whatever suits you */
    position: absolute;
    right: 0;
}

还有 JavaScript:

var section = document.getElementById('some-section');
var after = document.createElement('div');
after.className = 'after';

section.appendChild(after);

section.addEventListener('scroll', function() {
    after.style.bottom = -section.scrollTop + 'px';
}, false);​

Here's a working demo.

【讨论】:

  • 出于好奇,::after 伪元素是否适用于任何支持线性渐变的浏览器?
  • @spryno724:抱歉,不完全是。 ::after 元素随之滚动...让我解决这个问题。
  • 我有点困惑 - 是否有一个使用 ::after 伪元素的演示,或者你是说这是不可能的?谢谢!
  • @sguha:不,看来::after 不可能。 JavaScript 是我可以开始工作的唯一方法。
  • @sguha:不过,问题在于它会随着容器滚动。至少,它在 Chrome 上是这样。 (但如果它适用于您的目的 - 太好了!:D)
猜你喜欢
  • 2013-01-13
  • 2011-03-05
  • 2012-09-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-03-30
相关资源
最近更新 更多