css實現內容漸變隱藏效果,手機網頁版知乎內容隱藏效果的實現


看到一個需求,如下圖,知乎手機網頁版的一個視覺效果,對內容很長的部分有一個漸變的隱藏的效果,個人覺得這個設計還是很好的,符合手機大小的應用場景,沒有一下子顯示完全,可以很快的滑倒頁面底部,一定程度上減少了滑動時間,用戶體驗很好,對整個頁面有一個大概的預覽,強迫症會感覺很爽。

具體怎么實現這個效果,分析一下:

可以看出來是一個漸變的效果,從上往下顏色變白,我們知道在css3中有兩種漸變:線性(linear-gradient)和徑向(radial-gradient),很明顯這里屬於線性漸變。

漸變這種效果其實是一個圖片的樣子,我們可以設置一張上下透明的背景圖,定位在文字上,沒有漸變之前可以用這種方法。css3有了漸變,我們可以直接使用,漸變可以應用於任何使用背景圖片的地方。這意味着在CSS樣式中,漸變相當於背景圖片。

background-image: linear-gradient(str1,str2,str3);

漸變中共有三個參數,第一個數數表示線性漸變的方向,第二個和第三個參數分別是起點顏色和終點顏色。

辦公資源網址導航 https://www.wode007.com

方案一:

HTML:

<body>
	<div class="show_text">
		<p>漸變這種效果其實是一個圖片的樣子,我們可以設置一張上下透明的背景圖,定位在文字上,沒有漸變之前可以用這種方法。css3有了漸變,我們可以直接使用,漸變可以應用於任何使用背景圖片的地方。這意味着在CSS樣式中,漸變相當於背景圖片...</p>
	</div>
	<div class="mask"></div>
</body>

CSS:

<style>
body{
    position: relative;
}
.show_text{
    width: 100%;
    margin:0 auto;
}
.mask{
    width:100%;
    position: absolute;
    top:0;
    height: 100%;
    background-image: -webkit-linear-gradient(top, hsla(0,0%,100%,0), #fff);
    background-image: -moz-linear-gradient(top, hsla(0,0%,100%,0), #fff);
    background-image: -o-linear-gradient(top, hsla(0,0%,100%,0), #fff);
    background-image: linear-gradient(top, hsla(0,0%,100%,0), #fff);
}
</style>

 

hsla(0,0%,100%,0) 也可以使用 rgba(255,255,255,0)代替;效果圖:



方案二:

在幾年前張大神的博客中也有類似的效果,他寫的效果是對文字本身進行漸變,也是一種思路,借鑒過來使用,字體顏色為黑色,可以設置黑色到白色的上下漸變。

1 p{
2    background-image: -webkit-gradient(linear, 0 0, 0 bottom, from(rgb(25, 27, 25)), to(rgb(245, 244, 244)));
3    -webkit-background-clip: text;
4    -webkit-text-fill-color: transparent;
5 }

 

后兩種屬性兼容性不是很好。視覺上差別不是特別大,推薦使用方案一。

 

后記:

在這個大前端時代,相比各種火熱的前端框架,CSS雖簡單,也是容易被忽略,想要對CSS有一個比較深的掌握也是需要下大功夫的。在追趕大潮趨勢下,我們也要打好深厚的基礎,js也是,萬變不離其宗。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM