当前位置: 首页 > Web前端 > HTML5

有趣的方向切割溢出:clip

时间:2023-04-05 22:35:21 HTML5

本文将介绍一个新特性,从Chrome90开始,overflow新增了一个特性——overflow:clip,使用它可以轻松控制溢出方向。为什么要overflow:clip首先简单介绍一下overflow:clip的用法。overflow:clip:与overflow:hidden非常相似,同样会剪切元素的padding-box。但是,它们有两个区别:就是overflow:clip完全禁止内部任何形式的滚动。当然,这不是今天的重点,暂时略过。MDN原文:clip和hidden的区别在于clip关键字同样禁止所有的滚动,包括programmaticscrolling。overflow:clip可以从x,y轴方向控制裁剪,overflow:hidden则不行。关键是。简单展示一下:overflow:clip&&overflow:hidden的表现下面看下overflow:clip和overflow:hidden的表现,不区分方向:

Loremipsumdolorsitametconsecteturadipisicingelit。

Loremipsumdolorsitametconsecteturadipisicingelit.

Loremipsumdolorsitametconsecteturadipisicingelit.

.hidden{overflow:hidden;}.clip{overflow:clip;}我们设置了3个DIV容器,其中一个不设置overflow,另外两个设置overflow:clip和overflow:隐。效果如下:此时overflow:clip和overflow:hidden的表现是一致的。溢出:可以在x/y轴上独立设置剪辑。不过overflow:clip的不同之处在于它可以针对x轴或者y轴分别设置,让容器在某个方向上具有裁剪能力,而在相反的另一个方向上则允许overflow。看一下这个DEMO:这里的现象值得注意:只要设置overflow-x:hidden或者overflow-y:hidden,表达形式和overflow:hidden一致,就是横向的全方位裁剪和overflow-x或垂直y方向x:clip/overflow-y:clip配合overflow-x:另一方向可见,但可以实现一个方向溢出,一个方向裁剪!需要说明以上两点:设置overflow:hidden会创建BFC,所以没办法只限制一个方向;overflow:clip不会创建BFC,所以他们在很多表现上会有不一致(例如overflow-x)当/y设置为hidden时,overflow-y/x会变成auto,即使设置为visible一个完整的DEMO,可以点这里:CodePenDemo--overflow:hidden&overflow:clip至此,我们实现了这样一个效果,允许在x/y方向对元素进行单向裁剪,像这样:(上图允许x轴方向溢出,而y轴方向被裁剪)上下左右单一方向裁剪OK,那么,如果我们更进一步。比如有这样一个需求,要求上、左、右方向允许溢出,而下方向需要裁剪。可以吗?答案是肯定的。其实CSS中有很多裁剪元素的方法,大致的实现类似于overflow:hidden的功能。比如其中,我们可以使用clip-path来实现上下左右单一方向的裁剪。这是我上一篇文章——不使用overflow:hidden如何实现overflow:hidden的内容,有兴趣的可以看看。最后,本文到此结束。今天是一个非常小的技巧,希望对你有所帮助:)更多精彩的CSS技术文章汇总在我的Github——iCSS,持续更新中。欢迎点个星订阅收藏。有什么问题或者建议可以多交流。原创文章文笔有限,知识匮乏。如果文章中有任何不准确的地方,请告诉我。