23年新增CSS属性 container容器查询 容器单位实现字体大小随容器变化而变化

container兼容性很好,见下图

 一、@container规则

MDN文档介绍(由于这个属性是23新出,故mdn文档里是英文版本)

@container规则,也称@container查询,可以实时匹配指定为容器元素的尺寸,开发者可以基于不同的尺寸范围,对内部的元素进行特定的样式设置与布局实现。大家应该都知道@media媒体查询中有个尺寸匹配。而@container规则有些与之类似,只是匹配的尺寸对象不同。

@media匹配的是浏览器窗体,而@container匹配的是某个元素。

所以,业界就有这样的说法,@media查询适用于宏观布局,@container查询适用于微观布局。

下面的demo就是实现字体大小随容器变化而变化的demo:(里面用到的css新属性都在下文有介绍)

<div class="con"><span>测试文本测试文本测试文本测试文本文本测试文本测试文本</span>
</div>

.con {container-type: inline-size;}.con span {font-size: clamp(.75rem, calc(100cqw / 40), 2rem);}@container (max-width: 480px) {.con span {text-align: left;color: red;}
}

 

表示文字字号在0.75rem-2rem之间变化,字号是2.5%容器宽度,算算,一行可以放40个汉字。

demo中用到了container-type属性,这个可以设置该元素成为容器元素,浏览器中可以查看元素看到。

此时 cqw 单位就相对于这个元素计算。

demo中@container 实现的作用是容器宽度小于480px的时候左对齐,同时文字变红色,

mdn中介绍:container查询是可以指定查询某一个元素的,其中conrainer-name属性就是命名的作用

那么上面demo中并没有设置name,那么@container规则中的CSS语句,都会寻找最近的容器元素,并进行匹配。

如果页面中没有任何元素是容器元素(也就是没有元素设置container属性),则@container是不会执行的,同时cqw单位会按照浏览器窗体尺寸就像计算(等同于vw)。

所以@container规则生效的前提就是需要先声明容器元素,使用的是CSS container属性

二、 container属性

MDN文档介绍(由于这个属性是23新出,故mdn文档里是英文版本)

container是container-name和container-type的简写属性

语法:

/* <container-name> */
container: my-layout;/* <container-name> / <container-type> */
container: my-layout / size;

container-name:作用是给容器元素命名,这个属性在页面中存在多个容器元素的时候很有用。

container-type :表示指向容器的类型,是水平方向的(对应宽度),还是包括垂直方向的(对应宽度和高度)。有三个值normal、size、inline-size

其中normal是默认值,表示不建立容器元素,size表示水平和垂直方向都建立,inline-size是只在水平方向建立,会给元素同时应用layout、style和inline-size容器状态

 三、cqw等容器尺寸单位

随着CSS容器查询一起出现的还有CSS容器查询单位,包括:cqwcqhcqicqbcqmin 和 cqmax

单位名称释义
cqw表示容器查询宽度(Container Query Width)占比。1cqw等于容器宽度的1%。假设容器宽度是1000px,则此时1cqw对应的计算值就是10px。
cqh表示容器查询高度(Container Query Height)占比。1cqh等于容器高度的1%。
cqi表示容器查询内联方向尺寸(Container Query Inline-Size)占比。默认情况下,Inline-Size指的就是水平方向,对应的是宽度,因此,1cqi通常可以看成是容器宽度的1%。
cqb表示容器查询块级方向尺寸(Container Query Block-Size)占比。默认情况下,Block-Size指的就是垂直方向,对应的是高度,因此,1cqb通常可以看成是容器高度的1%。
cqmin表示容器查询较小尺寸的(Container Query Min)占比,例如容器尺寸是300px*400px,则100cqmin对应的是尺寸较小的宽度300px,而非高度。
cqmax表示容器查询较大尺寸的(Container Query Min)占比。

  如cqw的容器单位是相对于@container 规则匹配对象计算的,@container 规则匹配对象就是设置了container-type 这个CSS属性的元素。

学习于介绍2022最期待且已正式支持的CSS container容器查询 « 张鑫旭-鑫空间-鑫生活

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

平台工程在企业数字化转型中的战略价值

要建设成功、有弹性和面向未来的平台&#xff0c;需要做到这三点&#xff1a;了解需求、预测可能面临的挑战并制定经得起时间考验的解决方案。 了解需求是指理解利益相关者的要求和目标&#xff0c;无论他们是最终用户、开发人员还是平台生态系统中的其他相关方。这包括开展全面…

一款功能齐全的iOS混淆工具介绍及功能详解

机缘巧合偶遇iOS马甲包业务&#xff0c;前期也使用过目前市面上其他得工具&#xff0c;实际效果不太理想。经过大量实践&#xff0c;开发出一款功能齐全的混淆工具。工具的主要功能OC、C、Swift已封装成Mac应用&#xff0c;其他功能还在封装中&#xff0c;敬请期待。 马甲包的本…

什么是对比分析法

在对各地区 GDP 增速进行分析时&#xff0c;常用到对比分析法&#xff0c;通过横纵对比&#xff0c;既有利于各地区较好地自我定位&#xff0c;也有利于其找出与其他地区的差距。 一、基本概念 对比分析法也称比较分析法&#xff0c;是把客观事物加以比较&#xff0c;从而认识…

淘宝扭蛋机小程序:扭转购物新风尚,开启惊喜连连之旅

随着移动互联网的飞速发展&#xff0c;淘宝作为国内领先的电商平台&#xff0c;始终致力于为用户带来更加新颖、有趣的购物体验。如今&#xff0c;我们隆重推出淘宝扭蛋机小程序&#xff0c;将传统扭蛋机的乐趣与电商购物的便捷完美结合&#xff0c;为用户带来前所未有的惊喜与…

【自由看门狗配置及计算】

一、看门狗使用场景 看门狗是一个硬件计时电路&#xff0c;用来监测由软件故障导致的系统故障。 片上有两个看门狗定时器外设&#xff0c;自由看门狗定时器&#xff08;FWDGT也叫独立看门狗&#xff09;和窗口看门狗定时器&#xff08;WWDGT&#xff09;。 当嵌入式程序在运…

Vue项目管理器创建项目

黑马程序员JavaWeb开发教程 文章目录 1、创建新项目2、详情3、预设4、功能5、配置6、是否保存为预设模板7、正在创建项目8、创建完成 1、创建新项目 2、详情 3、预设 选择手动&#xff0c;点击下一步 4、功能 只需要额外选择一项–Router 即可&#xff0c;其余的保持默认&a…

掼蛋小技巧(上篇)

一、一火保两单 如果手中的牌可以组成同花顺并且不会造成两张以上的单牌&#xff0c;我们就可以组成同花顺&#xff1b;如果组了同花顺后有两张以上的单张则果断放弃组同花顺。 二、十张出一对&#xff0c;九张出单张 掼蛋残局的时候&#xff0c;如果判断出下家手上只有一个四头…

IDEA: Unable to resolve table ‘xxx‘

描述&#xff1a; 在 IDEA 连接到数据库后&#xff0c;SQL 语句提示 Unable to resolve table 表名&#xff0c;且其它字段也飘红报错。 解决&#xff1a; 右键点击数据库&#xff0c;选择 Tools -> Manage Shown Schemas... 勾选你所使用的数据库即可&#xff1a; 1、2、3…

[ESP32]:百度语音识别

[ESP32]&#xff1a;百度语音识别 1.开发环境&#xff1a; esp-idf 5.1esp32 s3microphone:MSM261S4030H0 百度文档&#xff1a;短语音识别标准版API 这里请求我们选择RAW方式 Content-Type: audio/pcm;rate16000请求格式如下&#xff1a; POST http://vop.baidu.com/ser…

linux学习:进程(新建+运行某文件+退出处理函数+等待)

目录 api 创建新进程 注意 运行某文件 例子 注意 例子&#xff0c;等待进程 进程是由进程控制块、程序段、数据段三部分组成 进程有都有一个父进程&#xff0c;除了init&#xff0c;父进程可以创建子进程 每个进程都有一个PID&#xff0c;可以用ps来查看&#xff0c;等…

FebHost:瑞士.CH域名和.RE域名如何选择

.ch和.re域名的区别主要在于它们代表的地区不同。.ch是瑞士的顶级域名&#xff0c;代表着瑞士的精细、创新和可靠&#xff1b;而.re则是留尼汪岛的顶级域名&#xff0c;展示着留尼汪岛的多元化和温馨。 从历史角度看&#xff0c;.ch域名的历史更悠久&#xff0c;反映了瑞士长久…

双轴测径仪兼顾铜排、铜棒、铜丝等多产品品质检测!

关键词&#xff1a;双轴测径仪,铜排测径仪,铜棒测径仪,铜丝测径仪, 测宽测厚仪, 铜排测宽测厚仪 在现代工业生产中&#xff0c;铜排作为一种重要的导电材料&#xff0c;广泛应用于电力、电子、通信等领域。为了确保铜排的质量和性能符合要求&#xff0c;铜排测宽测厚仪成为了生…