簡體   English   中英

將線性漸變添加到可滾動的 div

[英]Add linear gradient to a scrollable div

我需要在可滾動 div 的底部添加白色線性漸變,它應該始終位於 div 的底部。 我使用固定位置添加它,它適用於除 IE >= 9 之外的所有瀏覽器。我需要它用於所有瀏覽器,包括 IE>=9。 它應該看起來像這樣 - http://prntscr.com/ne3rfe

這是那個div的css代碼

 .perfect-scrollbar::before {
  content: "";
  position: fixed;
  overflow: hidden;
  width: 100%;
  height: 100%;
  bottom: 0;
  background: #7db9e8;
  background: -moz-linear-gradient(top, #7db9e8 0%, #1e5799 101%);
  background: -webkit-linear-gradient(top, #7db9e8 0%, #1e5799 101%);
  background: linear-gradient(to bottom, rgba(0, 0, 0, 0) 60%, rgba(255, 255, 255, .8) 101%);
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#7db9e8', endColorstr='#1e5799', GradientType=0);
} 

您可以使用父 div/容器上的:before:after css 選擇器來執行此操作:

選項1:

 body { margin: unset; } .container { border: 3px solid black; width: 500px; height: 100px; padding: 0; margin: 0 auto; position: absolute; top: 50%; left: 50%; font-size: 30px; font-family: calibri; overflow-y: auto; -webkit-transform: translate(-50%, -50%); -moz-transform: translate(-50%, -50%); -ms-transform: translate(-50%, -50%); transform: translate(-50%, -50%); } .container:before { content: ''; position: absolute; bottom: 0; background: linear-gradient(to bottom, transparent, white); height: 50%; width: 100%; }
 <div class="container"> <div>item1 - test</div> <div>item2 - test</div> <div>item3 - test</div> <div>item4 - test</div> <div>item5 - test</div> </div>

https://codepen.io/anon/pen/KYRvqz

選項 2:(適用於滾動)

 body { margin: unset; } .containerwrapper { border: 3px solid black; width: 500px; height: 100px; padding: 0; margin: 0 auto; position: absolute; top: 50%; left: 50%; overflow-y: auto; font-size: 30px; font-family: calibri; overflow: hidden; -webkit-transform: translate(-50%, -50%); -moz-transform: translate(-50%, -50%); -ms-transform: translate(-50%, -50%); transform: translate(-50%, -50%); } .containerwrapper:before { content: ''; position: absolute; bottom: 0; background: linear-gradient(to bottom, transparent, white); height: 100%; width: 100%; pointer-events: none; } .container { width: 100%; height: 100%; overflow-y: scroll; }
 <div class="containerwrapper"> <div class="container"> <div>item1 - test</div> <div>item2 - test</div> <div>item3 - test</div> <div>item4 - test</div> <div>item5 - test</div> </div> </div>

我在這里所做的是,我為文本制作了兩個包裝器,並給出了 .contentwrapper, pointer-events: none; 這樣您就可以通過 .contentwrapper 滾動、單擊、懸停等。

這也會給滾動條帶來淡入淡出的效果,要解決這個問題,只需更改以下內容:

.containerwrapper:before {
  width: 100%;
}

至:

.containerwrapper:before {
  width: calc(100% - 17px); // 17px is the width for the default scrollbar
}

https://codepen.io/anon/pen/gyzGGM?editors=1100

選項 3(無需絕對定位即可工作):

請參閱kmoser 的回答

希望這可以幫助!

當您可以絕對定位包含的 div 時,@Tigerrrrr 發布的選項 2 效果很好,但這在 div 需要保持在正常文檔流中的頁面上並不總是可行的。

這是一個不必絕對定位的示例。

 div.main { background-color: black; color: white; } h1 { color: yellow; } div.songs-wrapper { width: 100%; position: relative; } div.songs-wrapper::after { content: ""; position: absolute; bottom: 0; left: 0; right: 15px; height: 120px; background-image: linear-gradient( to bottom, rgba(0, 0, 0, 0), rgba(0, 0, 0, 1) 100% ); } div.songs { overflow-y: scroll; height: 400px; display: block; scrollbar-width: thin; scrollbar-color: #ff2222 #444444; padding: 0px 5% 0px 5%; } div.songs ul { margin: 0; padding: 0; padding-bottom: 50px; /* So we scroll just past the faded part */ -webkit-columns: 250px 3; -moz-columns: 250px 3; columns: 250px 3; } div.songs li { text-align: center; font-size: 1.2rem; line-height: 1.4rem; margin-bottom: 10px; list-style-type: none; /* '\2022'; */ -webkit-column-break-inside: avoid; page-break-inside: avoid; break-inside: avoid; }
 <div class="main"> <h1>Stuff Before</h1> <div class="songs-wrapper"> <div class="songs"> <ul> <li> Accentuate the Positive <span>(F)</span> </li> <li> Ain't Misbehavin' <span>(Bb)</span> </li> <li> All of Me <span>(C)</span> </li> <li> All of You <span></span> </li> <li> All or Nothing at All <span>(C)</span> </li> <li> All the Things You Are <span>(Ab)</span> </li> <li> Almost Like Being In Love <span>(Bb)</span> </li> <li> April in Paris <span>(Ab)</span> </li> <li> Autumn Leaves <span>(Em)</span> </li> <li> Be Careful, It's My Heart <span>(F)</span> </li> <li> The Best Things in Life are Free <span>(C)</span> </li> <li> Bewitched <span>(C)</span> </li> <li> Blue Skies <span>(Eb)</span> </li> <li> The Boulevard of Broken Dreams <span></span> </li> <li> But Not For Me <span>(Bb)</span> </li> <li> Bye Bye Blackbird <span>(F)</span> </li> <li> Call Me <span>(G)</span> </li> <li> Candy <span>(F)</span> </li> <li> Cheek to Cheek <span>(Ab)</span> </li> <li> Coquette <span>(C)</span> </li> <li> Cry Me a River <span>(C)</span> </li> <li> Don't Get Around Much Anymore <span>(C)</span> </li> <li> East of the Sun and West of the Moon <span>(G)</span> </li> <li> Embraceable You <span>(F)</span> </li> <li> Ev'ry Time We Say Goodbye <span>(C)</span> </li> <li> Fly Me To The Moon <span>(C)</span> </li> <li> The Frim Fram Sauce <span>(Bb)</span> </li> <li> From This Moment On <span>(Ab)</span> </li> <li> Get Me to the Church on Time <span>(G)</span> </li> <li> The Girl From Ipanema <span>(F)</span> </li> <li> Have You Met Miss Jones? <span>(F)</span> </li> <li> Hello, Young Lovers <span>(C)</span> </li> <li> Honeysuckle Rose <span>(F)</span> </li> <li> How Deep is the Ocean? <span>(C)</span> </li> <li> I Believe in You <span>(G)</span> </li> <li> I Can't Give You Anything But Love <span>(G)</span> </li> <li> I Could Write a Book <span>(Bb)</span> </li> <li> I Love Paris <span>(C)</span> </li> <li> I Wish I Were in Love Again <span>(G)</span> </li> <li> I Wish You Love <span>(Eb)</span> </li> <li> I'll Be Seeing You <span>(Bb)</span> </li> <li> I'll Never Smile Again <span>(C)</span> </li> <li> I'm Beginning to See the Light <span>(G)</span> </li> <li> I'm Gonna Sit Right Down and Write Myself a Letter <span>(C)</span> </li> <li> I've Got My Love to Keep Me Warm <span>(Eb)</span> </li> <li> I've Got the World On a String <span>(C)</span> </li> <li> I've Got You Under My Skin <span>(C)</span> </li> <li> I've Never Been In Love Before <span>(G)</span> </li> <li> If I Didn't Care <span>(Bb)</span> </li> <li> If I Were a Bell <span>(C)</span> </li> <li> In the Wee Small Hours of the Morning <span>(C)</span> </li> <li> Is You Is, Or Is You Ain't My Baby? <span>(Ab)</span> </li> <li> It All Depends on You <span>(G)</span> </li> <li> It Don't Mean a Thing (If It Ain't Got That Swing) <span>(Bb)</span> </li> <li> It Had to be You <span>(Eb)</span> </li> </ul> </div> </div> <h1>Stuff After</h1> </div>

上面的線性漸變<div>帶有 CSS 的標簽</div><div id="text_translate"><p>我希望在一些獨立滾動的選項卡內容的頂部添加一個漸變,這樣當您向上滾動時,內容不會在選項卡底部被切掉。 目標是讓內容在上面的選項卡后面淡化為白色。 我將如何 go 添加此漸變以使其位於選項卡內容之上並以最佳方式實現此效果? 下面的圖片更好地解釋了我想要的效果:</p><p> <a href="https://i.stack.imgur.com/r6lEv.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/r6lEv.png" alt="我有這個"></a></p><p> <a href="https://i.stack.imgur.com/16qjM.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/16qjM.png" alt="我要去這個"></a></p><p> 顯然我不希望它覆蓋第一張卡片,但我想我可以在選項卡和卡片之間調整它的大小,所以除非你滾動,否則不會覆蓋任何內容。 </p><p></p><div class="snippet" data-lang="js" data-hide="false" data-console="true" data-babel="false"><div class="snippet-code"><pre class="snippet-code-html lang-html prettyprint-override"> &lt;link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/css/bootstrap.min.css" integrity="sha384-9aIt2nRpC12Uk9gS9baDl411NQApFmC26EwAOH8WgZl5MYYxFfc+NcPb1dKGj7Sk" crossorigin="anonymous"&gt; &lt;div class="col-xs-12 col-sm-12 col-md-6"&gt; &lt;div class="row r-tabs"&gt; &lt;div class="tab-bar"&gt; &lt;button class="bar-item tab-active" onclick="openTab(event, 'section1')"&gt;Summary&lt;/button&gt; &lt;button class="bar-item" onclick="openTab(event, 'section2')"&gt;Images&lt;/button&gt; &lt;button class="bar-item" onclick="openTab(event, 'section3')"&gt;Contact&lt;/button&gt; &lt;button class="bar-item" onclick="openTab(event, 'section4')"&gt;Help&lt;/button&gt; &lt;/div&gt; &lt;/div&gt; &lt;div id="section1" class="tab-content"&gt; &lt;div class="card"&gt; &lt;div class="card-body model-btn-card"&gt; &lt;div class="viewing text-black"&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt;</pre></div></div><p></p></div>

[英]Linear gradient above <div> tag with CSS

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

相關問題 線性漸變不適用於 div 如何將懸停顏色添加到具有線性漸變邊框的div中? 在div中的線性漸變上添加填充圖案 Easy Div和線性漸變CSS 將線性漸變添加到SVG圓 :: after中與div中相同的線性漸變背景 使用CSS3的線性漸變div 用線性漸變着色后將圖像放置在div中 Div Button 懸停:過渡線性漸變 上面的線性漸變<div>帶有 CSS 的標簽</div><div id="text_translate"><p>我希望在一些獨立滾動的選項卡內容的頂部添加一個漸變,這樣當您向上滾動時,內容不會在選項卡底部被切掉。 目標是讓內容在上面的選項卡后面淡化為白色。 我將如何 go 添加此漸變以使其位於選項卡內容之上並以最佳方式實現此效果? 下面的圖片更好地解釋了我想要的效果:</p><p> <a href="https://i.stack.imgur.com/r6lEv.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/r6lEv.png" alt="我有這個"></a></p><p> <a href="https://i.stack.imgur.com/16qjM.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/16qjM.png" alt="我要去這個"></a></p><p> 顯然我不希望它覆蓋第一張卡片,但我想我可以在選項卡和卡片之間調整它的大小,所以除非你滾動,否則不會覆蓋任何內容。 </p><p></p><div class="snippet" data-lang="js" data-hide="false" data-console="true" data-babel="false"><div class="snippet-code"><pre class="snippet-code-html lang-html prettyprint-override"> &lt;link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/css/bootstrap.min.css" integrity="sha384-9aIt2nRpC12Uk9gS9baDl411NQApFmC26EwAOH8WgZl5MYYxFfc+NcPb1dKGj7Sk" crossorigin="anonymous"&gt; &lt;div class="col-xs-12 col-sm-12 col-md-6"&gt; &lt;div class="row r-tabs"&gt; &lt;div class="tab-bar"&gt; &lt;button class="bar-item tab-active" onclick="openTab(event, 'section1')"&gt;Summary&lt;/button&gt; &lt;button class="bar-item" onclick="openTab(event, 'section2')"&gt;Images&lt;/button&gt; &lt;button class="bar-item" onclick="openTab(event, 'section3')"&gt;Contact&lt;/button&gt; &lt;button class="bar-item" onclick="openTab(event, 'section4')"&gt;Help&lt;/button&gt; &lt;/div&gt; &lt;/div&gt; &lt;div id="section1" class="tab-content"&gt; &lt;div class="card"&gt; &lt;div class="card-body model-btn-card"&gt; &lt;div class="viewing text-black"&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt;</pre></div></div><p></p></div>
 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM