当前位置: 首页 > 科技观察

有趣的方向裁剪Overflow:Clip

时间:2023-03-20 18:52:08 科技观察

?本文将介绍一个新特性,从Chrome90开始,overflow新增了一个特性——overflow:clip,使用它可以轻松控制溢出方向。overflow:clip为什么先简单介绍一下overflow:clip的用法。overflow:clip:与overflow:hidden非常相似,同样会剪切元素的padding-box。但是,它们有两个不同点:就是overflow:剪辑内部完全禁止任何形式的滚动。当然,这不是今天的重点,暂时略过。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:clip/overflow-y:水平x或垂直y方向的裁剪,结合overflow-x:另一方向可见,可以允许一个方向溢出,一个方向裁剪!至此,我们就实现了这样一种效果,允许元素在x/y方向进行单向裁剪,像这样:(上图允许x轴方向溢出,而y轴方向裁剪)。上下左右单一方向的裁剪是可以的,那么,如果再进一步的话。比如有这样一个需求,要求上、左、右方向允许溢出,而下方向需要裁剪。可以吗?答案是肯定的。其实CSS中有很多裁剪元素的方法,大致的实现类似于overflow:hidden的功能。比如其中,我们可以使用clip-path实现上下左右单向裁剪。最后,本文到此结束。今天是一个非常小的技巧,希望对你有帮助:)参考[1]CodePenDemo--overflow:hidden&overflow:clip:https://codepen.io/Chokcoco/pen/LYdgvxm。[2]如何实现overflow:hiddenwithoutoverflow:hidden:https://github.com/chokcoco/iCSS/issues/90。[3]Github——iCSS:https://github.com/chokcoco/iCSS。