Loading [MathJax]/jax/input/TeX/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >2023 年了解即将推出的 CSS 功能

2023 年了解即将推出的 CSS 功能

作者头像
linwu
发布于 2023-08-17 01:25:42
发布于 2023-08-17 01:25:42
51600
代码可运行
举报
文章被收录于专栏:编程时光编程时光
运行总次数:0
代码可运行

Anchor Positioning

CSS 锚点定位是一项实验性的新 CSS 功能,允许你相对于页面上的另一个元素定位一个元素。这是通过使用 anchor-position 属性来完成的。例如,以下代码会将元素定位到锚元素左侧 10px 处:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
.element {  
anchor-position: my-anchor left 10px;  
}

CSS 锚点定位是一项强大的新功能,可用于创建各种交互元素,例如工具提示、模式和弹出窗口。它使工具提示更加动态。这是一个小示例,展示了如何锚定定位以创建工具提示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<div id="anchor">This is the anchor element</div>  
<div id="tooltip">This is the tooltip</div>
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#tooltip {  
position: absolute;  
display: none;  
}  
#anchor:hover #tooltip {  
display: block;  
}  
#tooltip {  
anchor-position: my-anchor top 10px;  
}

当锚元素悬停在上方时,此代码将创建一个位于锚元素上方 10px 的工具提示。

Developers.chrome.com 的另一个示例使用锚点定位来跟踪聚焦输入字段的视觉指示器。正如你所看到的,锚点可以处理多个位置和布局。

jcode

将来,我们将能够相对于多个锚元素定位一个元素:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
.anchor1 {  
anchor-name: anchor1;  
}  
.anchor2 {  
anchor-name: anchor2;  
}  
.positioned {  
position: absolute;  
top: 0;  
left: 0;  
anchor: anchor1, anchor2;  
}

下面是一个元素的多个处理程序的示例,其中工具提示通过将其与图表的最大值和最小值相结合来锚定(来源:developers.chrome.com)。

CSS 锚点定位使用场景

  • 当用户向下滚动页面时跟随用户的元素。
  • 当用户单击按钮时展开和折叠的手风琴。
  • 根据多个锚点位置调整图像大小
  • 显示在页面其余部分的模式对话框。
  • 更动态的工具提示!

CSS Shapes

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
> CSS Shapes允许你使用 CSS 轻松创建复杂的形状。CSS Shapes允许在 CSS 中设置几何形状来定义文本流动的区域。包括属性 `shape-outside、shape-margin 和 shape-image-threshold`

shape-outside 属性不久前已经开发完毕。这使你可以创建与页面上特定位置相关的形状。例如,你可以创建一个以页面左上角为中心的圆:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
.circle {  
shape-outside: circle(50px at 10px 10px);  
}

可以创建如三角形、梯形、多边形等。你可以根据需要将其复杂化。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
.triangle {  
shape-outside: triangle(50px, 0, 50px, 100px, 0, 100px);  
}

CSS Shapes其他新功能:

  • shape-inside 可用于创建填充图像或其他内容的形状。
  • shape-image 可用于创建响应元素大小的形状。
  • shape-overflow 可用于创建被剪切的形状或内容流到形状外部的形状。在下面的示例中, shape-overflow: clip 将允许内容溢出形状,但它将被限制在元素的笔画框内:

滚动捕捉(scroll snap)

CSS 滚动捕捉模块提供的属性可让您通过定义捕捉位置来控制平移和滚动行为。当用户滚动滚动容器内的溢出内容时,内容可以被捕捉到位,从而提供分页和滚动定位。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
.my-element {  
  scroll-snap-type: mandatory;  
  scroll-snap-points-x: repeat(50px, 100px);  
}

此代码将创建一个元素,该元素在 x 轴上每隔 50 像素捕捉一次,在 y 轴上每隔 100 像素捕捉一次。

滚动对齐: 新的 scroll-snap-align 属性允许你控制元素在对齐到对齐位置时的对齐方式。例如,你可以使用此属性来确保元素始终与滚动容器的顶部、底部、中心或左/右对齐。同样在下面的示例中,你可以看到两个轴都支持滚动捕捉。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
.container {  
  overflow-x: scroll;  
  overflow-y: scroll;  
  scroll-snap-type: both mandatory; // Support both axes  
  scroll-snap-align: center;  
}

更好地支持触摸设备: 使用触摸手势更容易捕捉到捕捉位置。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
.container {  
  scroll-snap-type: both mandatory;  
  scroll-snap-touch-snap-points: true;  
}

音频伪类

作为选择器级别4更新的一部分,添加了一些代表加载的图像和视频的伪类。

  • 当涉及到媒体播放时, :playing:paused:seeking 伪类似乎非常有用。因为我们现在可以轻松地设计这些元素的样式,以创建更具交互性和吸引力的用户体验。
  • 另一部分处理媒体加载状态,包括 :buffering:stalled 。这些类向用户表明,一旦加载问题得到解决,媒体将继续播放。还将添加伪类 :muted:volume-locked 。这些伪类是提供视觉反馈、让用户了解情况并使用不同样式的好方法,例如以下示例:
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
video {  
  opacity: 1;  
}  
video:buffering {  
  background-color: #ccc;  
  opacity: 0.5;  
}

这些 CSS 伪类非常实用。它们将成为我们网络开发工具包的宝贵补充,使处理媒体元素变得更加容易,并改善我们网站上的整体用户体验。

当前元素伪类(:current)

:current 伪类很简单;它代表当前正在显示的元素,或该元素的祖先。我们可以使用它来创建响应用户在特定元素中的当前位置的样式。

例如,以下规则可用于突出显示在文档的语音渲染中正在朗读的段落或锚元素:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
:current(p, a) {  
  background: yellow;  
}

此外, :past:future 伪类还提供了有趣的可能性,表示完全出现在 :current 元素之前或之后的元素。 :past 伪类表示定义为完全出现在 :current 元素之前的任何元素。然而, :future 伪类代表后面的元素。

CSS Grid

CSS 子网格是 CSS 网格布局的一项功能,允许你在单个网格容器中创建嵌套网格,并且还有新功能即将推出!以下是如何创建子网格的示例:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
.my-grid {  
  display: grid;  
  grid-template-columns: repeat(2, 1fr);  
}  
.my-subgrid {  
  display: grid;  
  grid-template-columns: repeat(2, 50px);  
}  
.my-grid > .my-subgrid {  
  grid-column: 1 / 2;  
}
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Grid Container  
   Column 1  
       Subgrid  
         Row 1  
         Row 2  
   Column 2

子网格嵌套在网格容器内。子网格有自己的网格布局,它独立于网格容器的网格布局。

grid lines

子网格的一个新功能称为网格线。你将能够命名网格上的网格线,然后根据这些名称而不是行号来定位项目,例如本例中:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
.grid {  
  display: grid;  
  grid-template\-names: a b c;  
}  
.grid .item.a {  
  grid-column: a;  
}  
.grid .item.b {  
  grid-column: b;  
}  
.grid .item.c {  
  grid-column: c;  
}

另一种是子网格的子网格对齐,以将网格与父网格对齐

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
.grid {  
  display: grid;  
  grid-template-columns: 1fr 1fr;  
  grid-template-rows: 1fr 1fr 1fr;  
}  
.grid .item {  
  background-color: #ccc;  
  border: 1px solid black;  
}  
.grid .item > .child-grid {  
  grid-template-columns: 1fr 1fr;  
  grid-template-rows: 1fr 1fr;  
  grid-alignment: start start;  
}

grid-alignment 属性可用于将子网格与其父网格对齐。在此示例中,子网格在水平轴和垂直轴上都与父网格对齐。

子网格的一个缺点是:它们很难调试。如果它们变得难以调试:使用网格检查器来可视化布局。在检查器面板中,你将看到许多不同的选项卡。其中一个选项卡是“网格”选项卡。 “网格”选项卡将向你显示 CSS 网格布局的可视化。可视化将向你显示网格线、网格轨道和网格项目。

CSS 子网格是一个有价值的工具,可用于创建复杂的响应式布局。

参考链接

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-08-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
你现在可以玩下这 5 个 CSS 新功能
在浏览器开始实现它们之前,CSS 新的功能通常需要经过长时间讨论之后,才在W3联盟的规范中定义。 有许多值得一提的 CSS 新功能,但是在本文中,我们重点介绍可以浏览器的稳定版中进行测试的五个功能:
前端小智@大迁世界
2020/11/13
6000
你现在可以玩下这 5 个 CSS 新功能
适合收藏,一些CSS优化技巧!
当各种框架以及复杂的 JS 知识开始充斥着我们的工作环境时。谁还能够记得,以 CSS 来构建更加良好的用户体验,也是前端的一个重要组成部分。 所以说,今天咱们就来看看 css 的优化方案-终极合集。一共一百条,有点多,适合收藏
老K博客
2024/03/10
5510
看完了 2021 CSS 年度报告,我学到了啥?
大家好,我是 ConardLi,一年一度的 CSS年度报告 如期而至,我挑了一些我感兴趣的部分,和我一起来看看吧~
ConardLi
2021/12/21
8850
看完了 2021 CSS 年度报告,我学到了啥?
分享100 个鲜为人知的 CSS 技巧
金三银四找工作的旺季来了,在过去的一段时间里,我花了很多时间将之前的一些基础知识做了整理,希望这些内容能够帮助你在面试的时候,稍微顺利一些。因此,我将整理好的这 100 个 CSS 知识技巧分享给你,希望你会觉得太对你有用。
前端达人
2024/03/11
6240
分享100 个鲜为人知的 CSS 技巧
CSS进阶12-网格布局 Grid Layout
(注1:如果有问题欢迎留言探讨,一起学习!转载请注明出处,喜欢可以点个赞哦!) (注2:更多内容请查看我的目录。)
love丁酥酥
2018/08/27
6.3K0
CSS进阶12-网格布局 Grid Layout
关于使用现代CSS新特性布局嵌套评论组件的尝试,希望对你有所启发
我花了很多时间试图理解这是如何工作的,以及如何通过现代 CSS(如 :has、size container queries 和 style queries)来改进它。在本文中,我将引导您了解我的思考过程,并分享我在其中所得到的发现。
前端达人
2023/08/31
5660
关于使用现代CSS新特性布局嵌套评论组件的尝试,希望对你有所启发
聊一聊CSS的过去与未来,加深对CSS的理解
它涉及设定规则,让浏览器自动处理。你可以改变边距、字体和大小,但这只是浅尝辄止,你懂的吗?
前端达人
2023/08/31
5640
聊一聊CSS的过去与未来,加深对CSS的理解
超级实用!,掌握这9个鲜为人知的CSS属性
虽然许多开发人员熟悉常用的CSS属性,但也有一些较为陌生的属性可能被忽视了。在本文中,我们将探讨10个你可能没有使用过的CSS属性。
前端小智@大迁世界
2023/08/16
7470
CSS Grid 新手入门
另外,下面一段话摘自A Complete Guide to Grid,对于CSS Grid会有更加清楚地释义
糊糊糊糊糊了
2018/09/28
2.2K0
CSS Grid 新手入门
2022 年的 CSS 全览
2022年将成为 CSS 最伟大的一年。无论是在功能还是合作浏览器的功能发布方面,合作目标是实现 14 个功能。
ConardLi
2022/05/23
4.4K0
2022 年的 CSS 全览
分享一些关于 CSS Grid 基础入门知识
在本文中,我们将通过一些实际示例来学习CSS网格,以帮助你更好地理解。让我们开始吧。
前端达人
2023/08/31
3100
分享一些关于 CSS Grid 基础入门知识
前沿动态 | 带你提前体验CSS未来的新特性
本篇文章,Rachel Andrew将会带着大家了解下浏览器在CSS方面的未来动向, 例如Flexbox行和列布局支持gap间隙属性的标准。
前端达人
2019/01/12
1.8K0
前沿动态 | 带你提前体验CSS未来的新特性
grid布局—让css变得更简单
通过将属性display的值设为grid,使 HTML 元素变为网格容器。在 CSS 网格中,父元素称为容器(container),它的子元素称为项(items)。
_kyle
2020/08/24
5.6K0
grid布局—让css变得更简单
CSS 实用新特性:交互、组件、效率的革新
本文将盘点与解析 CSS 的实用新特性,结合技术原理、应用场景和开发实践。从重塑交互体验,到强化组件功能,再到全面优化开发流程,这些新特性不仅显著提升了开发者的工作效率,还为用户带来了更加流畅、互动性更强的网页体验。
球球的前端奶茶屋
2025/04/09
2820
CSS 实用新特性:交互、组件、效率的革新
创建水平滚动的正确方式【CSS 网格布局】
自从奈飞 Netflix 成为了家喻户晓的名字以来,在移动端中我们一直使用横向布局。水平滚动容器(列表)已经成为了一种常见的布局做法,而不是将东西都堆叠在页面上,这将减少占用小屏幕设备垂直的空间。
Jimmy_is_jimmy
2022/11/22
2.9K0
创建水平滚动的正确方式【CSS 网格布局】
grid 布局的使用
grid 布局的使用    css 网格布局,是一种二维布局系统。    浏览器支持情况:老旧浏览器不支持,    概念: 网格容器。元素应用dispalay:grid,它是所有网格项的父元素。       <div class="container">          <div class="item item-1"></div>         <div class="item item-2"></div>         <div class="item item-3"></div>       
用户1197315
2018/01/22
1.7K0
【Web前端】深入CSS 布局
CSS 页面布局技术允许我们拾取网页中的元素,并且控制它们相对正常布局流、周边元素、父容器或者主视口/窗口的位置。
一条晒干的咸鱼
2024/11/19
5970
【Web前端】深入CSS 布局
WWDC 2022:哪些是前端开发者要关注的信息?
苹果全球开发者大会(Apple Worldwide Developers Conference,缩写:WWDC)是苹果公司每年定期举办的信息技术交流活动,活动旨在向全球的软件设计师展示苹果公司最新的软件及技术,通常用于展示 macOS、iOS、iPadOS、watchOS 和 tvOS 系列以及其他苹果公司的软件和技术。
ConardLi
2023/01/09
1.9K0
WWDC 2022:哪些是前端开发者要关注的信息?
全栈之前端 | 6.CSS3基础知识之网页几种布局方法学习(1)
描述: 前面相信大家已经跟着【WeiyiGeek】作者一起学习了CSS基础知识了,并且了解了盒子模型、以及元素的定位浮动方面的知识。现在我们在此基础上继续深入学习CSS布局,它是学习CSS之路上一个重点,是在进行前端开发时常常使用到的,所以说我们需要认真学习,若有不懂的地方可以在文章末尾,以及作者交流群【在公众号回复微信交流群】进行留言交流。
全栈工程师修炼指南
2023/10/31
9560
全栈之前端 | 6.CSS3基础知识之网页几种布局方法学习(1)
如何使用Flexbox和CSS Grid,实现高效布局
CSS 浮动属性一直是网站上排列元素的主要方法之一,但是当实现复杂布局时,这种方法不总是那么理想。幸运的是,在现代网页设计时代,使用 Flexbox 和 CSS Grid 来对齐元素,变得相对容易起来。
葡萄城控件
2022/05/09
3.8K0
如何使用Flexbox和CSS Grid,实现高效布局
相关推荐
你现在可以玩下这 5 个 CSS 新功能
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验