实现文字大小随容器大小变化,除了 css 计算还有什么直接实现的属性值?
当前位置:点晴教程→知识管理交流
→『 技术文档交流 』
到目前为止,除了使用 Javascript 之外,使用纯 CSS 也是可以的。 Demo 地址:Just a moment... 上面录屏的效果就是文字大小随着容器的大小变化的。实现视频中的效果使用的是 CSS 的新特性,容器查询 ,并且使用了 CSS 新增的容器单位。 先来看如何实现的吧: <div class="container"> <div class="box">右下角拖动我,可以根据容器宽度改变字号</div> </div> 关键的 CSS 代码: .container {container-type: inline-size;} .box {font-size: 5cqw;} CSS 容器查询是什么,这里就不详细阐述了,感兴趣的话,你可以移步阅读相关教程:
这里简单说一下容器查询单位。 容器查询单位的工作原理和视窗单位,比如
容器查询单位出现之后,可以帮助我们在处理组件内元素样式,比如 容器查询单位还没有的时候,我们一般会像下面这样改写卡片组件标题的 .card__title { font-size: 1rem; } /* 容器宽度大于 400px */ @container (width > 400px) { .card__title { font-size: 1.15rem; } } /* 容器宽度大于 600px */ @container (width > 600px) { .card__title { font-size: 1.25rem; } } /* 容器宽度大于 800px */ @container (width > 800px){ .card__title { font-size: 2rem; } } 有了容器查询单位之后,同样是给卡片组件标题设置 .card__title { font-size: clamp(1rem, 3cqw, 2rem); } 当然,我们也可以像前面课程中介绍 /* 视窗单位设置 font-size */ .card__title { font-size: clamp(1.2rem, 5vw + 1rem, 3rem); } /* 容器查询单位设置 font-size */ .card__title { font-size: clamp(1.2rem, 5cqi + 1rem, 3rem); } 注意,早期的容器查询单位原型是 就如上图中所示,你还可以将 CSS 的比较函数 .box {font-size: clamp(.8rem, 10cqw + .8rem, 2.5rem);} Demo 地址:Just a moment... 将 是不是很有意思。如果你从未接触过 CSS 的比较函数,可以移步阅读: 该文章在 2023/8/25 0:21:35 编辑过 |
关键字查询
相关文章
正在查询... |