CSS3 calc() 会计算的属性

本文详细介绍了CSS3中新增的calc()功能,该功能允许开发者为元素的多个属性设置动态值,例如边框、内边距、字体大小、宽度和高度等。通过使用简单的数学运算符和单位(如px、em、rem及百分比),calc()能够实现灵活的布局调整。文章还提供了一个三栏布局的例子,并讨论了与box-sizing属性的兼容性问题。
可用的属性:

calc是英文单词calculate(计算)的缩写,是css3的一个新增的功能,你可以使用calc()给元素的border、margin、pading、font-size、width和height等属性设置动态值。

以前我们可以使用box-sizing:border-box;来设置盒子的属性为不加上边距。现在我们又多了一个选择了。但要注意,两者只能使用一个哦,否则就会造成冲突了。

怎么使用

calc()可以使用数学运算中的简单加(+)、减(-)、乘(*)和除(/)来解决问题,而且还可以根据单位如px,em,rem和百分比来转化计算。

示例:

比如三局平均分布的布局,中间间距为5像素。 输入图片说明

布局使用
<style>
*{margin: 0; padding: 0;}
.col-3{width: calc(100%/3 - 5px); float: left; margin-right: calc(5px*3 /2); background: #eee; color: #333; height: 100px; text-align: center; margin-bottom: calc(5px*3 /2); font-size: 18px; line-height: 100px;}
.col-3:nth-child(3){margin-right: 0;}
</style>
兼容性问题

输入图片说明

转载于:https://my.oschina.net/shuaihong/blog/1618181

### 使用 `calc()` 函数计算元素的剩余高度 在 CSS3 中,`calc()` 函数可以用来动态地设置元素的高度,特别是当需要基于父容器或其他因素计算剩余空间时。通过组合百分比单位和其他绝对长度单位(如 px),能够创建灵活且响应式的布局。 对于计算剩余高度的情况,通常会遇到如下场景:有一个固定的头部或底部区域,而中间的内容区希望占据页面上除去这些固定部分之后的所有可用垂直空间。此时就可以利用 `calc()` 来完成这一目标[^1]。 下面是一个简单的例子展示如何应用 `calc()` 实现这样的效果: ```css html, body { height: 100%; margin: 0; } .container { display: flex; flex-direction: column; min-height: 100vh; /* 确保整个视口都被覆盖 */ } .header { background-color: #f8f9fa; padding: 20px; } .content { flex-grow: 1; background-color: white; padding: 20px; box-sizing: border-box; } .footer { background-color: #e9ecef; text-align: center; padding: 10px; } ``` 在这个案例里,并未直接使用 `calc()` 来定义 `.content` 的高度;而是借助 Flexbox 布局中的 `flex-grow` 属性让其自动填充剩下的空间。不过如果想要更精确控制或者不适用Flexbox,则可以直接指定`.content` 高度为 `calc(100% - (headerHeight + footerHeight))` 形式[^2]。 例如,假设头尾部各占去50像素高,那么内容区应该被设为: ```css .content { height: calc(100vh - 70px); /* 总高度减去顶部和底部分别占用的空间 */ } ``` 这种方法使得即使窗口大小发生变化,内容区也能始终保持适当的比例并充分利用屏幕上的每一寸空间[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值