2023年你应该需要知道的CSS新特性-交互篇

简介: 前一段时间State of CSS发起了2022年的调查问卷,该文件的内容主要是CSS新特性、框架、工具库的使用情况,这里我将会用几篇文章整理一下这个问卷中涉及到的新特性。
Hi~,我是 一碗周,一个在舒适区垂死挣扎的前端,如果写的文章有幸可以得到你的青睐,万分有幸~

🍎 写在前面

前一段时间State of CSS发起了2022年的调查问卷,该文件的内容主要是CSS新特性、框架、工具库的使用情况,这里我将会用几篇文章整理一下这个问卷中涉及到的新特性。

这篇文章将介绍如下内容:

  • CSS滚动捕捉
  • overscroll-behavior属性
  • scroll-behavior属性
  • scrollbar-gutter属性

🍈 CSS滚动捕捉

与CSS滚动捕捉相关的属性可以分为两类:

  • 作用在父容器上的属性:scroll-snap-typescroll-padding*

    其实还有一个 scroll-snap-stop属性,但是这个属性我实在没有测试出效果,这里就掠过吧
  • 作用在子元素上的属性:scroll-snap-alignscroll-margin*

我们先来看一下scroll-snap-type属性,MDN中给的定义是在滚动容器中的一个临时点(snap point)如何被严格的执行。说人话就是这个属性定义了一个容器如何处理滚动的结束状态,如果还是不明白我们直接先看一个例子:

代码片段

上面这个例子中,当切换scroll-snap-type: x mandatory;时,在混动的时候子元素最终停留的位置一定是子元素的开头,不会出现各占一半的尴尬情况。

上面例子中的核心代码如下:

.scroll {
  scroll-snap-type: x mandatory;
}

.scroll .item {
  /* 必要属性 */
  scroll-snap-align: start;
}

这里我们就来解释一下上面的代码:

  • scroll-snap-typex表示在x轴滚动,除x外还包含y | block | inline | both
  • scroll-snap-typemandatory表示强制滚动到我们指定的位置

    mandatory还存在proximity,这个值表示看当前的情况,决定是否滚动到指定位置(这里可以通过上面的例子自行体验区别);

  • scroll-snap-alignstart表示当前滚动子元素在滚动方向上相对于父容器的对齐方式,有三个值,分别是startcenterend

scroll-snap-align三个值的区别如下所示:

代码片段

我们可以切换来查看不同值的不同效果。

剩下的两个属性scroll-padding*scroll-margin*可以精确的控制滚动的偏移量,这里就不演示了,感兴趣的小伙伴可以自行体验。

最后提一下,这几个属性的浏览器兼容性非常良好,除了IE都支持,就算是写了IE不支持也没有什么坏影响。

🍑 overscroll-behavior属性

CSS中的overscroll-behavior是一个合并写法,可以拆分为overscroll-behavior-xoverscroll-behavior-y,它控制的是当元素滚动到边界后继续滚动的效果。

它的值有三个,分别是

  • auto:默认效果;
  • contain:依旧触发滚动到底部的效果(反弹),但是临近的滚动区域不会被影响;
  • none:不会触发触底效果也不会影响临近的滚动区域。

示例如下:

代码片段

如果文章中没有区别的话可以去码上掘金体验

overscroll-behavior的值为auto时,在列表区域滚动到底时会影响其他区域的滚动,当不为auto时就不会影响其他区域的滚动。

这个属性的浏览器兼容性很不错,可以放心使用。

🍒 scroll-behavior属性

CSS中的scroll-behavior属性可以为浏览器的滚动行为添加一个动画效果,它有两个值,一个是auto,另一个就是smooth,第二个值就可以为默认的滚动效果添加动画,示例如下:

代码片段

浏览器兼容情况如下:

除了IE基本都支持。

🍓 scrollbar-gutter属性

CSS中的scrollbar-gutter属性的出现了解决了一个经典的问题:当页面出现与隐藏滚动条时页面跳动的问题;出现这个问题的原因是因为滚动条会占据页面的宽度,所以隐藏和显示时可用宽度或者高度会减少。

这个属性有三个值:

  • auto:默认表现;
  • stable:如果元素的overflow的计算值不是visible,则会预留除滚动条的位置,这样出现滚动条时也不会跳动;
  • both-edges:为两侧都预留空白,可以让其绝对的居中对齐,要配合stable一起使用。

示例代码如下:

代码片段

例子中的主要核心代码如下:

.auto {
  scrollbar-gutter: auto;
}

.stable {
  scrollbar-gutter: stable;
}

.both-edges {
  scrollbar-gutter: stable both-edges;
}

浏览器兼容情况如下:

🥝 写在最后

今天介绍的几个CSS新属性都完全可以在生产环境使用,而且不需要做兜底,就算是浏览器不兼容也无伤大雅,不会有任何不确定的事情发生。

如果对本篇文章对你有所帮助,可以点赞收藏评论支持一下我;如果有所疑问,欢迎私信~

目录
相关文章
|
3月前
|
前端开发 JavaScript 开发者
探索Web设计新纪元:CSS3的革新特性如何重塑我们的网页视觉体验?
【8月更文挑战第26天】随着Web技术的发展,CSS3为前端开发带来了众多激动人心的新特性,极大提升了网页设计的视觉效果与创意空间。本文通过对比CSS3与CSS2,详细介绍了CSS3在选择器增强、圆角阴影处理、渐变背景应用、转换动画实现、文字效果优化、媒体查询支持及多列布局方面的显著改进,展示了CSS3如何助力开发者打造更具吸引力和互动性的网页体验。
52 1
|
2月前
|
前端开发
【前端web入门第四天】02 CSS三大特性+背景图
本文详细介绍了CSS的三大特性:继承性、层叠性和优先级,并深入讲解了背景图的相关属性,包括背景属性、背景图的平铺方式、位置设定、缩放、固定以及复合属性。其中,继承性指子元素自动继承父元素的文字控制属性;层叠性指相同属性后定义覆盖前定义,不同属性可叠加;优先级涉及选择器权重,包括行内样式、ID选择器等。背景图部分则通过具体示例展示了如何设置背景图像的位置、大小及固定方式等。
256 91
|
5天前
|
前端开发
css特性
css特性 1.继承性:子级继承父级文字控制属性 ps:子级拥有自己的样式则不会继承父级。 2.层叠性:相同的属性后面覆盖前面,不同的属性叠加 3.优先级:选择器优先级高的样式生效 公式:通配符<标签<类<id<行内样式<!important(选中范围越大,优先级越低) 叠加计算规则:存在复合选择器时,从左向右依次比较个数,同一级个数多的优先级高,如果个数相同,则向后比较;!important权重最高;继承权重最低。
|
6月前
|
机器学习/深度学习 移动开发 前端开发
CSS3 新特性
CSS3 新特性
69 0
|
3月前
|
前端开发 JavaScript API
Vue 3 新特性:在 Composition API 中使用 CSS Modules
Vue 3 新特性:在 Composition API 中使用 CSS Modules
|
6月前
|
前端开发 JavaScript 开发者
CSS3作为CSS的最新版本,引入了许多强大的新特性和改进
【5月更文挑战第26天】CSS3作为CSS的最新版本,引入了许多强大的新特性和改进
63 2
|
5月前
|
前端开发
番外篇-CSS3新增特性
番外篇-CSS3新增特性
32 0
|
6月前
|
前端开发 JavaScript UED
【专栏:交互与用户体验篇】CSS 滚动效果与视差滚动
【4月更文挑战第30天】本文探讨了CSS滚动效果和视差滚动在提升网页用户体验中的作用。CSS滚动效果通过`transition`和`animation`属性实现元素动态变化,包括平滑滚动、元素跟随和滚动触发动画。视差滚动则利用不同元素滚动速度差异营造立体感,适用于长页面设计、故事讲述和创意展示。实现方法包括纯CSS和结合JavaScript。这些效果能增强吸引力、提升沉浸感并引导用户注意力,但需注意性能优化、适度使用和兼容性测试。案例分析展示了它们在实际项目中的应用和影响。
76 2
|
6月前
|
前端开发 UED
【专栏:CSS 进阶篇】CSS3 新特性:过渡、动画与变形
【4月更文挑战第30天】CSS3的过渡、动画和变形三大特性为网页设计注入活力,创造生动丰富的用户体验。过渡提供平滑效果,常用于按钮点击等;动画实现复杂动态效果,适用于滚动字幕等;变形允许元素几何变换,如旋转和缩放。实际应用包括动态导航菜单、图片轮播和加载动画。然而,需注意浏览器兼容性、性能优化和设计平衡。掌握这些特性,将为网页设计带来更多创新可能。
153 1
|
6月前
|
前端开发 JavaScript 开发者
【Web 前端】css3的新特性有哪些?
【4月更文挑战第22天】【Web 前端】css3的新特性有哪些?

热门文章

最新文章