简体   繁体   English

HTML/CSS:如何淡化 div 的左右边缘?

[英]HTML/CSS: How to fade the left and right edges of a div?

Problem Statement:问题陈述:

Hi, I want to fade out the div and it's contents from the left and right edge using pure CSS.嗨,我想使用纯 CSS 从左右边缘淡出 div 及其内容。 Currently I'm able to achieve this based on an answer to a question on stack overflow.目前,我可以根据对堆栈溢出问题的回答来实现这一点。

在此处输入图像描述

Code:代码:

 .container { height: 234px; width: 234px; overflow: scroll; mask-image: linear-gradient(transparent, black 20%, black 80%, transparent 100%); -webkit-mask-image: linear-gradient(transparent, black 20%, black 80%, transparent 100%); }.container::-webkit-scrollbar { display: none; }
 <div class="container"> <p> Lorem ipsum dolor sit amet consectetur adipisicing elit. Impedit dolorem libero, dolor, fuga illo nobis rem ipsam ipsa perferendis dolore autem fugiat. Dicta eius repellendus totam qui maiores odio a, Lorem ipsum dolor sit amet consectetur adipisicing elit, Impedit dolorem libero. dolor, fuga illo nobis rem ipsam ipsa perferendis dolore autem fugiat, Dicta eius repellendus totam qui maiores odio a. Lorem ipsum dolor sit amet consectetur adipisicing elit, Impedit dolorem libero, dolor. fuga illo nobis rem ipsam ipsa perferendis dolore autem fugiat, Dicta eius repellendus totam qui maiores odio a, Lorem ipsum dolor sit amet consectetur adipisicing elit. Impedit dolorem libero, dolor, fuga illo nobis rem ipsam ipsa perferendis dolore autem fugiat! Dicta eius repellendus totam qui maiores odio a! Lorem ipsum dolor sit amet consectetur adipisicing elit. Impedit dolorem libero, dolor, fuga illo nobis rem ipsam ipsa perferendis dolore autem fugiat! Dicta eius repellendus totam qui maiores odio a! Lorem ipsum dolor sit amet consectetur adipisicing elit. Impedit dolorem libero, dolor, fuga illo nobis rem ipsam ipsa perferendis dolore autem fugiat! Dicta eius repellendus totam qui maiores odio a! </p> </div>

How can I do make the linear gradient make left and right edges fade instead of top and bottom?如何使线性渐变使左右边缘消失而不是顶部和底部?

Also: This syntax is pretty neat but I fail to understand that how the args passed to linear-gradient are able to specify to fade the container only from top and bottom, and leave the rest as it is.另外:这种语法非常简洁,但我不明白传递给线性渐变的参数如何能够指定仅从顶部和底部淡化容器,并保留 rest 原样。 In short, we have not specified any directions something like to-top and to-bottom so how's this actually working?简而言之,我们没有指定任何方向,比如to-topto-bottom ,那么这实际上是如何工作的?

NOTE: I know this question is a duplicate of this .注意:我知道这个问题是这个的重复。 But the answer specified on the question does not solve my use case, as it's not fading out the inner content of the div.但是问题上指定的答案并没有解决我的用例,因为它没有淡出 div 的内部内容。

Thanks: :)谢谢: :)

here is the code.这是代码。 I put justify so you can see it better.我把 justify 这样你就可以更好地看到它。 Here is the example这是示例

 .container { width: 234px; text-align: justify; mask-image: linear-gradient(to left, transparent, black 40%, black 60%, transparent 100%); -webkit-mask-image: linear-gradient(to left, transparent, black 40%, black 60%, transparent 100%);
 <div class="container"> <p> Lorem ipsum dolor sit amet consectetur adipisicing elit. Impedit dolorem libero, dolor, fuga illo nobis rem ipsam ipsa perferendis dolore autem fugiat. Dicta eius repellendus totam qui maiores odio a, Lorem ipsum dolor sit amet consectetur adipisicing elit, Impedit dolorem libero. dolor, fuga illo nobis rem ipsam ipsa perferendis dolore autem fugiat, Dicta eius repellendus totam qui maiores odio a. Lorem ipsum dolor sit amet consectetur adipisicing elit, Impedit dolorem libero, dolor. fuga illo nobis rem ipsam ipsa perferendis dolore autem fugiat, Dicta eius repellendus totam qui maiores odio a, Lorem ipsum dolor sit amet consectetur adipisicing elit. Impedit dolorem libero, dolor, fuga illo nobis rem ipsam ipsa perferendis dolore autem fugiat! Dicta eius repellendus totam qui maiores odio a! Lorem ipsum dolor sit amet consectetur adipisicing elit. Impedit dolorem libero, dolor, fuga illo nobis rem ipsam ipsa perferendis dolore autem fugiat! Dicta eius repellendus totam qui maiores odio a! Lorem ipsum dolor sit amet consectetur adipisicing elit. Impedit dolorem libero, dolor, fuga illo nobis rem ipsam ipsa perferendis dolore autem fugiat! Dicta eius repellendus totam qui maiores odio a! </p> </div>

If you need less strong version of the fade:如果您需要较弱的淡入淡出版本:

<style>
.container {
    width: 234px;
    text-align: justify;
    mask-image: linear-gradient(to left,#00000030, black 20%, black 80%, #00000030 100%);
    -webkit-mask-image: linear-gradient(to left,#00000030, black 20%, black 80%, #00000030 100%);
    }
</style>

The default of linear gradients run from top to bottom.默认的线性渐变从上到下运行。 So, you need to use to left or to right with transparent.因此,您需要使用透明to leftto right To make it more clear you have to reduce transparency.为了使其更清晰,您必须降低透明度。 The transition is made between two-color or more which creates a band of colors that progress in a straight line.在两种或更多颜色之间进行过渡,从而形成一条直线前进的 colors 带。 See here . 见这里

 .container { height: 234px; width: 234px; overflow: scroll; mask-image: linear-gradient(transparent, black 20%, black 80%, transparent 100%); -webkit-mask-image: linear-gradient( to right,transparent, black 20%, black 80%, transparent 100%); }.container::-webkit-scrollbar { display: none; }
 <div class="container"> <p> Lorem ipsum dolor sit amet consectetur adipisicing elit. Impedit dolorem libero, dolor, fuga illo nobis rem ipsam ipsa perferendis dolore autem fugiat. Dicta eius repellendus totam qui maiores odio a, Lorem ipsum dolor sit amet consectetur adipisicing elit, Impedit dolorem libero. dolor, fuga illo nobis rem ipsam ipsa perferendis dolore autem fugiat, Dicta eius repellendus totam qui maiores odio a. Lorem ipsum dolor sit amet consectetur adipisicing elit, Impedit dolorem libero, dolor. fuga illo nobis rem ipsam ipsa perferendis dolore autem fugiat, Dicta eius repellendus totam qui maiores odio a, Lorem ipsum dolor sit amet consectetur adipisicing elit. Impedit dolorem libero, dolor, fuga illo nobis rem ipsam ipsa perferendis dolore autem fugiat! Dicta eius repellendus totam qui maiores odio a! Lorem ipsum dolor sit amet consectetur adipisicing elit. Impedit dolorem libero, dolor, fuga illo nobis rem ipsam ipsa perferendis dolore autem fugiat! Dicta eius repellendus totam qui maiores odio a! Lorem ipsum dolor sit amet consectetur adipisicing elit. Impedit dolorem libero, dolor, fuga illo nobis rem ipsam ipsa perferendis dolore autem fugiat! Dicta eius repellendus totam qui maiores odio a! </p> </div>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM