成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

裁剪的三種方式,CSS 如何隱藏移動(dòng)端的滾動(dòng)條?

開發(fā) 前端
「overflow」兼容性最好,也最直觀,符合大多數(shù)人思路,缺點(diǎn)是需要單獨(dú)嵌套一層父級(jí)。「clip」實(shí)現(xiàn)最簡(jiǎn)潔,也比較好理解,在本案例中最為推薦。「mask」思路和「clip」,實(shí)現(xiàn)起來(lái)稍微復(fù)雜一點(diǎn),還可以實(shí)現(xiàn)更為復(fù)雜的漸隱效果,能夠掌握更好。

在移動(dòng)端開發(fā)中,經(jīng)常會(huì)碰到需要橫向滾動(dòng)的場(chǎng)景,例如這樣的

但很多時(shí)候是不需要展示這個(gè)滾動(dòng)條的,也就是這樣的效果,如下

你可能想到直接設(shè)置滾動(dòng)條樣式就可以了,就像這樣

::-webkit-scrollbar {
  display: none;
}

目前來(lái)看好像沒(méi)什么問(wèn)題,但在某些版本的 iOS 上卻無(wú)效(具體待測(cè)試),滾動(dòng)條仍然出現(xiàn)。

那有沒(méi)有其他方式可以解決這個(gè)問(wèn)題呢?下面介紹幾個(gè)方法。

一、通過(guò) overflow 隱藏

既然有時(shí)候修改滾動(dòng)條樣式無(wú)法解決,我們可以想辦法把它隱藏。

下面是一個(gè)橫向滾動(dòng)列表。

<div class="list">
  <div class="item"></div>
  <div class="item"></div>
  <div class="item"></div>
  <div class="item"></div>
  <div class="item"></div>
  <div class="item"></div>
  <div class="item"></div>
</div>

簡(jiǎn)單修飾一下,讓這個(gè)列表可以橫向滾動(dòng)。

.list{
  display: flex;
  overflow: auto;
  gap: 10px;
  padding: 10px;
}
.item{
  width: 100px;
  height: 100px;
  background: royalblue;
  border-radius: 8px;
  flex-shrink: 0;
}

效果如下:

通過(guò)「overflow」隱藏的方式很簡(jiǎn)單,我們需要一個(gè)父級(jí)。

<div class="wrap">
  <div class="list">
    
  </div>
</div>

然后,將列表底部padding設(shè)置的稍微大一些,比如:

.list{
  /**/
  padding-bottom: 20px;
}

可以看到列表下方的距離變大了,滾動(dòng)條也更靠下了,效果如下:

如何讓整體尺寸仍然保持原有呢?答案是借助負(fù)「margin」,比如之前底部「padding」是10,現(xiàn)在改成了20,所以需要-10的「margin」。

.list{
  /**/
  margin-bottom: -10px;
}

這樣整體尺寸就正常了,不過(guò)滾動(dòng)條仍然是可見(jiàn)的,只是出去了。

最后只需要設(shè)置父級(jí)的 「overflow」為隱藏就可以了。

.wrap{
  /**/
  overflow: hidden;
}

原理示意如下:

這樣就完美隱藏了滾動(dòng)條。

當(dāng)然,不僅僅是 「overflow」,下面這種方式也可以實(shí)現(xiàn)超出隱藏。

.wrap{
  /**/
  contain: paint;
}

這個(gè)屬性比較新,可以控制元素在容器內(nèi)的繪制規(guī)則,了解一下即可

https://developer.mozilla.org/zh-CN/docs/Web/CSS/contain。


二、通過(guò) clip 裁剪

第一種方式需要借助父級(jí)的超出隱藏,需要額外一層,好像有點(diǎn)麻煩,有沒(méi)有辦法自身也可以裁剪呢?

那就是 「clip-path」

https://developer.mozilla.org/zh-CN/docs/Web/CSS/clip-path。


相信大家對(duì)這個(gè)屬性應(yīng)該很熟練了,非常直觀的裁剪屬性。

比如這種情況,只需要把滾動(dòng)條的那一部分裁剪掉就可以了,這里要用到clip-path的inset方法。

clip-path: inset()

這里簡(jiǎn)單介紹一下。「inset」最多可以傳4個(gè)參數(shù),分別表示裁剪掉距離上、右、下、左的部分。

所以,要把滾動(dòng)條隱藏就很簡(jiǎn)單了,只需要把下方的裁剪距離設(shè)置大于滾動(dòng)條尺寸的值就行了,這里就用10px。

.list{
  clip-path: inset(0 0 10px)
}

效果如下:

一行代碼輕松解決~

三、通過(guò) mask 遮罩

其實(shí)和 「clip」思路是一致的,只不過(guò)實(shí)現(xiàn)方式不一樣。

關(guān)于 mask 遮罩,之前在多篇文章中都有提到,非常實(shí)用的小技巧,主要原理是顯示遮罩圖片不透明的部分,透明的則會(huì)被裁剪,示意如下:

回到這里,我們只需要繪制一個(gè)不包含滾動(dòng)條部分的純色漸變就行了,可以直接繪制一個(gè)純色漸變,然后設(shè)置背景尺寸,如下:

.list{
  -webkit-mask: linear-gradient(red, red) 0 0/100% calc(100% - 10px) no-repeat;
}

原理示意如下:

也能很好的隱藏滾動(dòng)條。

除此以外,mask 還可以很好的實(shí)現(xiàn)滾動(dòng)邊界漸隱的效果,只需要疊加一層從透明→純色→透明的漸變就行了。

.list{
  -webkit-mask: linear-gradient(to right, transparent, red 15px calc(100% - 15px), transparent),  
  linear-gradient(red, red) 0 0/100% calc(100% - 10px) no-repeat;
  -webkit-mask-composite: source-in;
}

就可以得到這樣的效果:

由于是遮罩實(shí)現(xiàn),并不是簡(jiǎn)單的顏色覆蓋,所以換一種背景顏色也可以很好的融合。

以上所有完整 demo 可以查看以下鏈接

  • CSS scroll hidden (juejin.cn)[1]
  • CSS scroll hidden (codepen.io)[2]

四、總結(jié)一下

以上共介紹了 3 種方式來(lái)隱藏滾動(dòng)條,各有千秋

  • 「overflow」兼容性最好,也最直觀,符合大多數(shù)人思路,缺點(diǎn)是需要單獨(dú)嵌套一層父級(jí)。
  • 「clip」實(shí)現(xiàn)最簡(jiǎn)潔,也比較好理解,在本案例中最為推薦。
  • 「mask」思路和「clip」,實(shí)現(xiàn)起來(lái)稍微復(fù)雜一點(diǎn),還可以實(shí)現(xiàn)更為復(fù)雜的漸隱效果,能夠掌握更好。

當(dāng)然不僅僅只是本文的案例,很多場(chǎng)景都可以去嘗試用多種方式去實(shí)現(xiàn),更多的是發(fā)揮自己的想象,這樣的CSS不是更有趣嗎?

[1]CSS scroll hidden (juejin.cn): https://code.juejin.cn/pen/7276721196161302588。

[2]CSS scroll hidden (codepen.io): https://codepen.io/xboxyan/pen/GRPrzeO。

責(zé)任編輯:姜華 來(lái)源: 前端偵探
相關(guān)推薦

2010-09-30 15:37:29

ScrollBarJavascrip

2023-11-22 07:47:34

2023-12-04 09:31:13

CSS卡片

2025-07-02 08:05:00

網(wǎng)頁(yè)端收消息架構(gòu)輪詢

2010-09-09 11:25:55

滾動(dòng)條CSS

2024-01-22 09:28:23

CSS前端滾動(dòng)驅(qū)動(dòng)

2011-05-12 16:30:44

自定義滾動(dòng)條

2010-09-07 16:31:27

CSS

2012-07-17 09:16:16

SpringSSH

2022-03-16 14:27:49

CSS三角形前端

2010-09-09 09:47:02

DIV滾動(dòng)條

2020-11-01 17:10:46

異步事件開發(fā)前端

2021-11-05 21:33:28

Redis數(shù)據(jù)高并發(fā)

2019-11-20 18:52:24

物聯(lián)網(wǎng)智能照明智能恒溫器

2014-12-31 17:42:47

LBSAndroid地圖

2021-06-24 08:52:19

單點(diǎn)登錄代碼前端

2023-01-09 11:33:25

CSS寫作網(wǎng)格線

2010-03-12 17:52:35

Python輸入方式

2011-11-02 11:06:50

2015-10-13 15:05:09

BYOD自帶設(shè)備移動(dòng)辦公
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 日韩在线一区二区三区 | 欧美福利影院 | 美女艹b| 国产资源一区二区三区 | 风间由美一区二区三区在线观看 | 亚洲日日夜夜 | 中文字幕 欧美 日韩 | 黄色av大片 | 欧美日韩国产精品一区二区 | 亚洲欧美中文日韩在线v日本 | 亚洲国产精品一区二区久久 | 精品一区二区三区在线观看国产 | 中文字幕在线观看一区 | 天天av综合 | 日韩视频精品在线 | 欧美一区二区三区免费电影 | 免费精品久久久久久中文字幕 | 久久久久国产一区二区三区 | 亚洲啊v在线 | 一级做a毛片 | 欧美一二三区 | 欧美日韩高清一区二区三区 | 欧美色性| 色婷婷一区二区三区四区 | 久久精品综合 | 精品一区二区三区91 | 久久国产一区二区三区 | 欧美一级淫片免费视频黄 | 在线免费观看视频你懂的 | 国产精品99免费视频 | 成人a在线 | 在线免费看毛片 | 国产91在线播放 | 久久99蜜桃综合影院免费观看 | 日韩免费网 | 99久久久国产精品免费消防器 | 极品在线 | 欧美一区二| 亚洲成人99| 日韩一二区 | 亚洲免费在线观看视频 |