2023 css新特性简单总结

2023 css新特性简单总结

CSS 是一种用于设计网页和用户界面样式的强大语言。它在不断发展,不断添加新特性。2023 年,将有许多令人激动新的 CSS 新特性。

容器查询

最重要的新功能之一是容器查询。容器查询允许我们根据父容器的大小设置元素的样式。这使我们可以更好地控制布局,并更轻松地创建响应式设计。

例如,我们可以使用容器查询来根据按钮是在狭窄的侧边栏还是在宽的主要内容区域中来设置不同的样式。这将使我们能够在不同的设备和屏幕尺寸上创建更加一致和用户友好的体验。

:has() 选择器

另一个新功能是:has()选择器。此选择器允许我们根据特定子元素的存在来设置元素的样式。这可用于创建更复杂和动态的用户界面。

例如,如果标题下方有副标题,我们可以使用:has()选择器以不同的方式设置标题样式。这将使我们能够为用户创建更具视觉吸引力和信息丰富的标题。

嵌套

CSS 嵌套是一个非常令人兴奋的新功能,它有可能使 CSS 代码更具可读性和可维护性。

以下是 CSS 嵌套的一些主要优点:

  • 提高可读性和可维护性: CSS 嵌套使我们可以更轻松地阅读和理解 CSS 代码,因为它允许我们将相关的 CSS 规则分组在一起。这可以更轻松地查找和修复错误,也可以更轻松地与其他开发人员协作。
  • 减少代码重复: CSS 嵌套允许我们在整个代码库中重用 CSS 规则,从而帮助我们减少代码重复。这可以使我们的 CSS 代码更高效且更易于更新。
  • 更模块化的 CSSCSS 嵌套可以帮助我们编写更模块化的 CSS 代码。这意味着我们可以将 CSS 代码分解为更小、更易于管理的部分。这可以使我们的 CSS 代码更可重用且更易于共享。

其他新功能

还有许多其他新的 CSS 功能也值得注意:

  • 第 n 个微语法:这提供了一种更简洁、更易读的方式来选择列表中的特定元素。
  • text-wrap:balance:此属性允许我们平衡容器中的文本换行,以便行间距更加均匀。
  • 首字母:此属性允许我们以独特的方式设置文本块的第一个字母的样式。
    动态视口单位:这些单位允许我们定义相对于视口大小的字体大小和其他 CSS 值,但能够根据用户首选项覆盖这些值。
  • 广色域色彩空间:这些空间允许我们在 UI 中使用更广泛的颜色,从而产生更加生动、逼真的图像和图形。
  • color-mix():此函数允许我们通过混合两种或多种现有颜色来创建自定义颜色。
  • 级联层:这些层允许我们将 CSS 规则分组在一起并控制它们之间的交互方式。这对于创建更复杂和细致的 UI 非常有用。
  • 作用域样式:这些样式允许我们将 CSS 规则应用于特定元素或其后代,而不影响文档的其余部分。这有助于使我们的 CSS 代码更加模块化和可重用。
  • 三角函数:这些函数允许我们在 CSS 代码中执行三角计算。这对于创建复杂的动画和效果非常有用。
  • 单独的变换属性:这些属性允许我们将单独的变换属性应用于元素,例如scale()rotate()translate()。这使我们可以更好地控制元素的转换。

如何使用这些新功能

其中许多新的 CSS 功能仍在开发中,但它们已经受到 ChromeFirefoxEdge 等主要浏览器的支持。要使用这些功能,我们只需将它们添加到 CSS 代码中即可。

例如,要使用容器查询,我们需要向 CSS 代码添加一条@container规则。此规则将指定我们要查询的父容器,以及我们要设置样式的 CSS 属性

@container my-container ( min-width : 500px ) { /* 宽容器的 CSS 规则 */}
@container my-container ( max-width : 499px ) { /* 窄容器的 CSS 规则 */}

要使用:has()选择器,我们只需将其添加到 CSS 规则中即可。此选择器将指定我们要检查的子元素,以及我们要在子元素存在时设置样式的 CSS 属性。

.parent :has (.child) { /* 具有子元素的父元素的 CSS 规则 */}

要使用:has()选择器嵌套 CSS 规则,只需将其添加到父元素的 CSS 规则中即可。该选择器将指定我们要检查的子元素,并且仅当子元素存在时才会应用子元素的 CSS 规则。

.container {width: 100%;max-width: 960px;margin: 0 auto;
}.container h1 {font-size: 32px;margin-top: 0;
}.container p {font-size: 16px;margin-bottom: 0;
}/* With nesting */
.container {width: 100%;max-width: 960px;margin: 0 auto;h1 {font-size: 32px;margin-top: 0;}p {font-size: 16px;margin-bottom: 0;}
}

如何使用新的 CSS UI 功能的示例

以下是一些示例,说明如何使用新的 CSS UI 功能来创建响应更快且更易于访问的 UI

使用容器查询创建响应式网格布局。我们可以使用容器查询创建网格布局,该布局根据父容器的宽度调整其列和行。这将确保我们的布局在所有设备上看起来都不错并且功能良好。

使用:has()选择器创建一个下拉菜单,当用户将鼠标悬停在菜单项上时,该菜单会自动打开。为此,我们首先要为菜单项创建一个元素div,并为下拉列表创建一个元素ul。然后,我们可以将选择器添加:has()到该div元素,并将该ul元素指定为要检查的子元素。最后,我们将添加要应用于菜单项和下拉列表的 CSS 属性。

例如,以下 CSS 代码将创建一个下拉菜单,当用户将鼠标悬停在“菜单”项上时,该菜单将打开:

.dropdown-menu:has(.dropdown-list) {cursor: pointer;
}.dropdown-list {display: none;position: absolute;top: 100%;left: 0;width: 100%;background-color: white;z-index: 1;
}.dropdown-list li {padding: 10px;
}.dropdown-menu:hover .dropdown-list {display: block;
}

要使用此 CSS 代码,我们只需将dropdown-menu添加到菜单项的元素div的类名中,并将dropdown-list添加到下拉列表的元素ul的类名中。然后,我们可以将菜单项添加到该ul元素。

例如,以下 HTML 代码将创建一个包含两个菜单项的下拉菜单:

<div class="dropdown-menu">Menu<ul class="dropdown-list"><li>Home</li><li>About</li></ul>
</div>

当用户将鼠标悬停在“菜单”项上时,下拉列表将自动打开。然后,用户可以单击菜单项之一导航到该页面。

使用其他新的 CSS UI 功能

我们还可以使用其他新的 CSS UI 功能来创建响应更快且更易于访问的 UI。例如,我们可以使用动态视口单位来确保字体大小和其他 CSS 值始终根据用户的设备进行适当缩放。我们还可以使用广色域色彩空间来创建更加生动、逼真的图像和图形。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/149190.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

JMeter性能分析实战一:日常登录接口

负载测试 日常需求&#xff1a;负载测试&#xff01; 对于桥的负载测试&#xff1a;我给你20t的一排车辆&#xff0c;看你能不能撑得住20t&#xff01; 对于系统的负载测试&#xff1a; 逐步增加负载&#xff0c;便于问题的发现和定位&#xff0c;不要操之过急。逐步增加负载…

Stable Diffusion云服务器部署完整版教程

Stable Diffusion云服务器部署完整版教程 2023年07月04日 22:30 3607浏览 18喜欢 22评论 <span class"bili-avatar-icon bili-avatar-right-icon "></span> </div>薯片_AI 粉丝&#xff1a; 1513 文章&#xff1a; 1 设置分组取消关注 已关注 …

【MySql】3- 实践篇(一)

文章目录 1. 普通索引和唯一索引的选择1.1 查询过程1.2 更新过程1.2.1 change buffer1.2.2 change buffer 的使用场景 1.3 索引选择和实践1.4 change buffer 和 redo log2. MySQL为何有时会选错索引?2.1 优化器的逻辑2.1.1 扫描行数是怎么判断的?2.1.2 重新统计索引信息 2.2 …

C语言中柔性数组的讲解与柔性数组的优势

前言:也许你从来没有听说过柔性数组&#xff08;flexible array&#xff09;这个概念&#xff0c;但是它确实是存在的。C99 中&#xff0c;结构中的最后一个元素允许是未知大小的数组&#xff0c;这就叫做"柔性数组"成员。 目录标题 柔性数组什么是柔性数组呢&#…

【C语言】八大排序算法

文章目录 一、冒泡排序1、定义2、思想及图解3、代码 二、快速排序1、hoare版本2、挖坑法3、前后指针法4、非递归快排5、快速排序优化1&#xff09;三数取中选key值2&#xff09;小区间优化 三、直接插入排序1、定义2、代码 四、希尔排序1、定义2、图解3、代码 五、选择排序1、排…

sheng的学习笔记-【中文】【吴恩达课后测验】Course 2 - 改善深层神经网络 - 第二周测验

课程2_第2周_测验题 目录&#xff1a;目录 第一题 1.当输入从第8个mini-batch的第7个的例子的时候&#xff0c;你会用哪种符号表示第3层的激活&#xff1f; A. 【  】 a [ 3 ] { 8 } ( 7 ) a^{[3]\{8\}(7)} a[3]{8}(7) B. 【  】 a [ 8 ] { 7 } ( 3 ) a^{[8]\{7\}(3)} a…

代码随想录 Day11 二叉树 LeetCode T144,145,94 前中后序遍历 (递归解法)

题解及更详细解答来自于:代码随想录 (programmercarl.com) 前言: 递归三要素 确定递归函数的参数和返回值&#xff1a; 确定哪些参数是递归的过程中需要处理的&#xff0c;那么就在递归函数里加上这个参数&#xff0c; 并且还要明确每次递归的返回值是什么进而确定递归函数的返…

【Redis】基础数据结构-skiplist跳跃表

有序集合Sorted Set zadd zadd用于向集合中添加元素并且可以设置分值&#xff0c;比如添加三门编程语言&#xff0c;分值分别为1、2、3&#xff1a; 127.0.0.1:6379> zadd language 1 java (integer) 1 127.0.0.1:6379> zadd language 2 c (integer) 1 127.0.0.1:6379…

【Java-LangChain:使用 ChatGPT API 搭建系统-2】语言模型,提问范式与 Token

第二章 语言模型&#xff0c;提问范式与 Token 在本章中&#xff0c;我们将和您分享大型语言模型&#xff08;LLM&#xff09;的工作原理、训练方式以及分词器&#xff08;tokenizer&#xff09;等细节对 LLM 输出的影响。我们还将介绍 LLM 的提问范式&#xff08;chat format…

【图像处理】使用各向异性滤波器和分割图像处理从MRI图像检测脑肿瘤(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

实验3.2 分期付款计算器

目录 实验目的‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬ 实验内容‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬…

20231005使用ffmpeg旋转MP4视频

20231005使用ffmpeg旋转MP4视频 2023/10/5 12:21 百度搜搜&#xff1a;ffmpeg 旋转90度 https://zhuanlan.zhihu.com/p/637790915 【FFmpeg实战】FFMPEG常用命令行 https://blog.csdn.net/weixin_37515325/article/details/127817057 FFMPEG常用命令行 5.视频旋转 顺时针旋转…

python爬虫基于管道持久化存储操作

文章目录 基于管道持久化存储操作scrapy的使用步骤1.先转到想创建工程的目录下&#xff1a;cd ...2.创建一个工程3.创建之后要转到工程目录下4.在spiders子目录中创建一个爬虫文件5.执行工程setting文件中的参数 基于管道持久化存储的步骤&#xff1a;持久化存储1&#xff1a;保…

集合(容器)-List接口及实现类

容器的特征&#xff1a;①数据长度可变&#xff1b;②数据保存方式不同。 集合体系概述&#xff1a;JAVA的集合框架是由很多接口、抽象类、具体类组成。都位于java.util包中。 Java中集合类中默认可以存储任意数据类型&#xff0c;Java中的集合提供泛型机制&#xff0c;在定义…

李沐深度学习记录3:11模型选择、欠拟合和过拟合

通过多项式拟合探索欠拟合与过拟合 import math import numpy as np import torch from torch import nn from d2l import torch as d2l#生成数据集 max_degree 20 # 多项式的最大阶数 n_train, n_test 100, 100 # 训练和测试数据集大小 true_w np.zeros(max_degree) # …

园林园艺服务经营小程序商城的作用是什么

园林园艺属于高单价服务&#xff0c;同时还有各种衍生服务&#xff0c;对企业来说&#xff0c;多数情况下都是线下生意拓展及合作等&#xff0c;但其实线上也有一定深度&#xff0c;如服务售卖或园艺产品售卖等。 基于线上发展可以增强获客引流、品牌传播、产品销售经营、会员…

很普通的四非生,保研破局经验贴

推免之路 个人情况简介夏令营深圳大学情况机试面试结果 预推免湖南师范大学面试结果 安徽大学面试结果 北京科技大学笔试面试结果 合肥工业大学南京航空航天大学面试结果 暨南大学东北大学 最终结果一些建议写在后面 个人情况简介 教育水平&#xff1a;某中医药院校的医学信息…

STL-stack、queue和priority_queue的模拟实现

目录 一、容器适配器 &#xff08;一&#xff09;什么是适配器 &#xff08;二&#xff09;stack和queue的底层结构 二、Stack 三、queue 四、deque双端队列 &#xff08;一&#xff09;优点 &#xff08;二&#xff09;缺陷 五、优先级队列 &#xff08;一&#xff…

成都建筑模板批发市场在哪?

成都作为中国西南地区的重要城市&#xff0c;建筑业蓬勃发展&#xff0c;建筑模板作为建筑施工的重要材料之一&#xff0c;在成都也有着广泛的需求。如果您正在寻找成都的建筑模板批发市场&#xff0c;广西贵港市能强优品木业有限公司是一家值得关注的供应商。广西贵港市能强优…

华为云云耀云服务器L实例评测|Ubuntu云锁防火墙安装搭建使用

华为云云耀云服务器L实例评测&#xff5c;Ubuntu安装云锁防火墙对抗服务器入侵和网络攻击 1.前言概述 华为云耀云服务器L实例是新一代开箱即用、面向中小企业和开发者打造的全新轻量应用云服务器。多种产品规格&#xff0c;满足您对成本、性能及技术创新的诉求。云耀云服务器L…