I am trying to create a text fade-out effect when the amount of text is bigger than the row can handle. I am achieving this with the mixture of max-height
, overflow
and linear-gradient
. Something like this.
max-height:200px;
overflow:hidden;
text-overflow: ellipsis;
background: -webkit-linear-gradient(#000, #fff);
The full fiddle is available. I am trying to achieve effect similar to this one
and I am kind of close. The problem is that in my case text start to fade-out from the very beginning and I want it to start fading out only if it is really close to maximum size. Lets say start fading out if it is already 150px. Also I am using only -webkit
prefix and I assume that there may be other prefixes that I can add for other rendering engines.
Is there a way to do this in pure CSS?
The overflow-wrap CSS property applies to inline elements, setting whether the browser should insert line breaks within an otherwise unbreakable string to prevent text from overflowing its line box.
Looks like your requirement is just to fade out the text beginning at a certain height (about 150px), the text (if any) presenting at that height is considered as overflow. So you can try using some kind of transparent linear gradient layer placed on top of the text area, we can achieve this in a neat way using the pseudo-element :before
like this:
.row:before { content:''; width:100%; height:100%; position:absolute; left:0; top:0; background:linear-gradient(transparent 150px, white); }
Fiddle
I used this method derived from reddit pages & it works fine
.fade {
-webkit-mask-image: linear-gradient(180deg, #000 60%, transparent);
}
<div>
<div class="fade">
Text text text text<br />
Text text text text<br />
Text text text text<br />
Text text text text<br />
Text text text text<br />
Text text text text<br />
Text text text text<br />
Text text text text<br />
Text text text text<br />
Text text text text<br />
</div>
</div>
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With