calc()
?calc()
是 CSS 提供的一个函数,用于在样式中执行动态计算,支持混合不同单位的计算。property: calc(expression);php27 Bytes© 菜鸟-创作你的创作
expression
是一个数学表达式,可以包含加(+)、减(-)、乘(*)、除(/)四则运算。+
, -
, *
, /
运算符。px
, %
, em
, rem
, vw
, vh
, vmin
, vmax
等。calc(100% / 3)
有效,但 calc(50% * 2em)
无效)。width: calc(100% - 50px);margin-top: calc(1em + 10px);font-size: calc(2vw + 1rem);height: calc(100vh - 60px);php112 Bytes© 菜鸟-创作你的创作
动态计算宽度、高度,结合百分比与固定像素。
.container { width: calc(100% - 40px); padding: 20px;}php59 Bytes© 菜鸟-创作你的创作
利用 calc()
计算绝对定位偏移。
.child { position: absolute; left: calc(50% - 100px); width: 200px;}php75 Bytes© 菜鸟-创作你的创作
结合视口单位和相对单位,兼顾不同屏幕大小。
h1 { font-size: calc(1.5rem + 2vw);}php39 Bytes© 菜鸟-创作你的创作
/* 正确 */width: calc(100% - 50px);/* 错误 */width: calc(100%-50px);php68 Bytes© 菜鸟-创作你的创作
calc()
不能用在某些 CSS 属性(比如 z-index
),具体支持请查阅浏览器兼容性。calc()
,包括 Chrome、Firefox、Edge、Safari。虽然规范允许,但实际中不推荐,且兼容性可能有限。
width: calc(100% - calc(2 * 10px));php35 Bytes© 菜鸟-创作你的创作
推荐拆开计算。
:root { --gap: 20px;}.container { padding: calc(var(--gap) / 2);}php72 Bytes© 菜鸟-创作你的创作
明白!这里给你一份CSS 进阶布局与 calc()
结合实战详解,包含实际案例和优化建议,帮你在项目中灵活运用 calc()
。
calc()
结合实战详解.container { width: calc(100% - 40px); /* 100% 减去固定左右边距 40px */ margin: 0 20px;}php85 Bytes© 菜鸟-创作你的创作
这样无论屏幕大小变化,容器宽度都能自适应,且保持左右边距固定。
.modal { position: absolute; width: 400px; left: calc(50% - 200px); /* 50%减去宽度的一半,实现水平居中 */ top: 100px;}php113 Bytes© 菜鸟-创作你的创作
.main-content { height: calc(100vh - 60px); /* 视口高度减去导航栏固定高度 */ overflow: auto;}php85 Bytes© 菜鸟-创作你的创作
结合视口单位和基础字号,提升阅读体验:
h1 { font-size: calc(1rem + 2vw);}php37 Bytes© 菜鸟-创作你的创作
calc()
设置子元素宽度.container { display: flex;}.sidebar { width: 250px;}.content { width: calc(100% - 250px);}php102 Bytes© 菜鸟-创作你的创作
避免内容溢出,同时保持布局稳定。
:root { --gap: 24px;}.box { margin: calc(var(--gap) / 2); padding: calc(var(--gap) / 3);}php98 Bytes© 菜鸟-创作你的创作
只需修改变量即可全局调整间距。
calc()
,影响性能和兼容。calc()
实现更灵活响应式。https://www.52runoob.com/archives/5724
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。