calc()
是 CSS3 中一个非常实用的函数,它允许你在声明 CSS 属性值时执行计算。下面详细介绍它的使用方法:
property: calc(expression);
其中 expression
是一个数学表达式,可以包含以下运算符:
- +
加法
- -
减法
- *
乘法
- /
除法
运算符前后必须有空格(除了乘法和除法)
calc(100% - 20px)
calc(100%-20px)
可以混合使用不同的单位
width: calc(100% - 50px);
height: calc(100vh - 2em);
可以嵌套使用
width: calc(100% / calc(10px + 10px));
.container {
width: calc(100% - 40px); /* 左右各留20px边距 */
margin: 0 auto;
}
.grid-item {
width: calc((100% - 30px) / 3); /* 3列布局,间距10px */
margin-right: 10px;
}
.grid-item:last-child {
margin-right: 0;
}
.content {
height: calc(100vh - 60px); /* 总高度减去头部高度 */
overflow: auto;
}
.element {
font-size: calc(1rem + 1vw);
padding: calc(2em + 5px);
}
calc()
函数在现代浏览器中有很好的支持(IE9+、Firefox、Chrome、Safari、Edge)。对于旧版浏览器,建议提供回退方案:
.element {
width: 90%; /* 回退值 */
width: calc(100% - 10%);
}
乘法和除法中至少有一个值必须是无单位的数字
calc(100px * 2)
, calc(100px / 2)
calc(100px * 2px)
除法运算时,除数不能为0
在媒体查询中不能使用 calc()
calc()
函数极大地增强了CSS的灵活性,特别是在响应式设计中,能够实现更精确的布局控制。