导航

萌即是正义!时不时分享一些ACG活动记录与有趣代码的小站!

侧边栏
热门文章
1推文
给《悠哉日常大王》的旧小川小学校下里分校圣地巡礼剪辑了完整的圣地巡礼视频: https://www.bilibili.com/video/BV1Qm5vzMEzY/
热度
325
2博文
探访《蜡笔小新》老家——春日部游记
热度
234
3页面
程序员老黄历&求签
热度
234
4推文
日本著名的博客平台goo blog宣布2025年11月18日停止服务。 很可惜呀,这个博客平台存有大量日本圣地巡礼的内容。随着goo blog的停止,圣地巡礼尤其是老作品的圣地巡礼的资料将会迎来断崖式的减少。
热度
221
5博文
面码找到你了!探寻超平和Busters的秘密基地——《我们仍未知道那天所看见的花的名字》秩父圣地巡礼
热度
143
6推文
今天去看了首部初音未来的电影《剧场版 世界计划 破碎的世界与无法歌唱的未来》。 说是初音未来的电影,但其实是手游《世界计划》的剧场版。好像有挺多人看到是初音未来的电影就去看了,结果发现并不全是😅。其实在宣传海报中,初音未来后面的那些人才是主角。 不过,我也是那些没玩过手游的观众之一。其实整场看下来问题也不是很大,就是对于人物关系和世界观的设定可能会有些问题。电影其实也很贴心地在剧情开头,大致以剧情的形式展示了手游中的五个团体的人物及其性格,但感觉还是有些杯水车薪,约等于看个眼熟。 此次的电影是第一次购买应援场。所谓的应援场,就是能在电影院里像是听演唱会一样挥舞荧光棒和尽情呐喊。看着前排那些粉丝看到自己喜欢角色时的呐喊,以及演唱会环节的打CALL,应援场确实是很有意思的一种电影观看方式呢! 剧情方面,属于看了开头大概能猜到整部动画的剧情走向。不过,通过演唱会的气氛渲染,甚至还感受到了一丝丝的感动。 总体来说,对于手游的粉丝来说可能是嘉年华般的狂喜,对于没接触过手游的路人来说也能一定程度融入其中,属于一部不错的粉丝向电影(不管是手游粉丝还是初音未来粉丝)。 首周电影特典是CD和游戏内的兑换码。送CD这种形式还第一次遇到,官方大气!
热度
117
7推文
看完《孤独摇滚》的总集篇剧场版后篇了。 虽然删减在所难免,但是个人觉得制作组还是在尽量在保留精华。 ED歌曲《Re:Re:》把我惊艳到了,非常熟悉的旋律当时硬是想不起来,回到家查了一下原来第一次听到是在《只有我不在的街道》。 https://www.bilibili.com/video/BV1M5ejeMErR
热度
117
8页面
活动
热度
117
9页面
友链
热度
91
10推文
《摇曳露营△》联合日本静冈县推出了新的圣地巡礼地图。 这周要去的圣地巡礼正是《摇曳露营△》第二季中的伊豆半岛,也就是巡礼地图的右下角这块区域。 可以看到光是伊豆半岛这块区域的巡礼地点就非常多。 此次行程准备用时2天,能逛多少就算多少。 《摇曳露营△》× 静冈县官方:https://yurucamp-shizuoka.com
热度
65
最新评论
广树管理员
2025-04-18 21:49
@Zrzzz:其实更直观点还可以传全景视频,只不过不想露脸。
Zrzzz
2025-04-18 21:44
@广树:视频感觉空间感更直观啦!期待我们广树老师更多巡礼vlog(˶‾᷄ ⁻̫ ‾᷅˵)
广树管理员
2025-04-18 20:58
@Zrzzz:嘿嘿,能让大佬喜欢真的太好啦
Zrzzz
2025-04-18 20:50
视频好好!!校庭开放感好强 室内采光也好好
广树管理员
2025-04-18 06:45
@空我:上世纪夸张了呀
攻略中
星空列车与白的旅行
暂无评分
Steam星空列车与白的旅行
2025年2月22日 22时 ~ 攻略中
已累计游玩1个月25天
乘坐的列车,划破夜空,飞驰在星空之下,令人心旷神怡——这可真是场超值之旅。舒爽夜风吹拂下的随心独旅中,我邂逅了随性的乘客,可人怜爱的乘务员。以及……猫耳少女?这场旅行,究竟会在她身上,留下了些什么呢?
界之轨迹
暂无评分
PS5界之轨迹
2024年9月28日 14时 ~ 攻略中
已累计游玩6个月23天
导力之父爱普斯泰因预言的世界末日即将到来,此时东大陆共和国所研发的导力火箭划破天空,即将探访这个世界的边界。 与此同时万事屋的青年们,正聚集在奥雷德自治州,与集结而来的各方势力,一同看望着这科技奇点。 人们这次是否能认识到世界的真实呢?
PSN奖杯卡

PSN奖杯卡

归档
赞助商广告

让宽高自动过渡动画不再那么繁琐!CSS新功能 interpolate-size 和 calc-size()

作者:广树时间:2024-07-21 10:51:23分类:CSS/HTML

在 CSS 动画中从 height: 0 过渡到 height: auto 看起来应该很简单,但实际上 CSS 无法从 任何数值 过渡到 height: auto ,因为它需要一个具体的高度值来运行任何动画或过渡。在过去,开发者只能使用 JavaScript 来计算元素的高度并进行动画处理,这显然不是理想的解决方案。因此,CSS 终于引入了全新的 interpolate-size属性 和 calc-size() 函数,使这种类型的动画变得非常简单。


概述

CSS 新增的 interpolate-size 属性和 calc-size() 函数极大地增强了对内在尺寸关键字(如 auto、min-content、fit-content 等)的动画和过渡能力。这些工具的出现,使得不同尺寸之间的平滑动画成为可能,解决了网页开发者长期以来的痛点。


calc-size() 函数

calc-size() 函数的工作原理与 calc() 函数相同,但它增加了基于浏览器自动计算尺寸的能力。这些值包括:

  • auto
  • min-content
  • max-content
  • fit-content
  • stretch
  • contain

基本上,calc-size() 函数将诸如 auto 之类的值转换为特定的像素值,然后与其他值一起进行计算。这在动画自动调整大小的元素时特别有用。

例子:

.element {
  height: 0;
  overflow: hidden;
  transition: height 0.3s;
}

.element.open {
  height: calc-size(auto);
}

通过在 calc-size() 函数中包装 auto 值,可以在不使用任何 JavaScript 的情况下,从 0 过渡到 auto 高度。

需要注意的是,不能在两个自动计算的值之间进行动画,例如 auto 和 min-content 之间。

另一个有趣的方面是,只要在动画的某一个具体数值上使用 calc-size(),也能使动画生效。

比如:

.element {
  height: calc-size(0px);
  overflow: hidden;
  transition: height 0.3s;
}

.element.open {
  height: auto;
}


interpolate-size 属性

interpolate-size 属性允许对内在尺寸关键字进行动画和过渡。通过在根元素中指定 interpolate-size: allow-keywords,可以启用整个页面的新行为。这意味着可以不再依赖calc-size,全局使用新的过渡动画。

例子:

:root {
  interpolate-size: allow-keywords;
}
.element {
  height: 0px;
  overflow: hidden;
  transition: height 0.3s;
}
.element.open {
  height: auto;
}


计算

尽管上述情况是最常见的用例,但由于该函数与 calc() 函数的工作方式相同,它实际上可以用于进行以前在 CSS 中不可能进行的某些计算。

比如:

.element {
  width: calc-size(min-content, size + 50px);
}

上述 CSS 将元素的宽度设置为最小内容大小加 50 像素。语法可能有点复杂,所以进行解释:

calc-size() 接受两个参数,第一个是要计算的大小,第二个是要执行的计算。在这个例子中,计算元素的最小内容大小,然后加上 50 像素。关键字 size 始终表示传递给 calc-size 的第一个属性的当前大小。这意味着在这个例子中,size 等于元素的最小内容大小。

甚至可以嵌套多个 calc-size() 函数以进行更复杂的计算:

.element {
  width: calc-size(calc-size(min-content, size + 50px), size * 2);
}

这将计算元素的最小内容大小,加上 50 像素,然后将结果乘以 2。


浏览器支持

截至目前,calc-size() 仅在启用了 #enable-experimental-web-platform-features 标志的 Chrome 中受支持。还没有出现在 caniuse.com 上。

其他主流浏览器,例如火狐、Safari也已经开放了相应的Issues:

火狐: https://github.com/mozilla/standards-positions/issues/1022

Safari: https://github.com/WebKit/standards-positions/issues/348

相信明年的这个时候,主流浏览器应该都会支持吧。


相关链接

W3C: https://drafts.csswg.org/css-values-5/#calc-size

donate.png

1210 x 50(蓝底).png

cloudcone