在项目开发过程中中,遇到了一些css3的属性,比如calc属性,能实现自适应布局,还可以进行计算,在官网和一些文章中进行了解之后,做如下总结
在做网页的过程中,我们会遇到有的元素的宽高为100%,如果自身还有其他的盒模型属性(margin,padding,border),会导致盒子被撑破(标准模式下,
怪异模式除外),这样的情况下我们需要进行更复杂的计算,这样的问题,我们可以通过box-sizing来解决,但今天的calc()函数在同样可以实现,并且更加简单。
clac()是一个函数,calculate(计算)的缩写,用于指定元素长度,calc() 函数用于动态计算长度值。
可以使用calc()给元素的border、margin、pading、font-size和width等属性设置动态值,比如给一个div,
使用px,rem等计算宽高,“width:calc(90% - 20px)”。
需要注意的是,运算符前后都需要保留一个空格,例如:width: calc(100% - 10px);
任何长度值都可以使用calc()函数进行计算;
calc()函数支持 “+”, “-”, “*”, “/” 运算;
calc()函数使用标准的数学运算优先级规则
1.添加样式
.div2 {width: 100%;background: yellow;height: 50px;
}
如图:
2.此时在div2添加padding,border
.div1 {width: 110px;background: pink;height: 100px;border: 3px solid black;}
.div2 {width: 100%;background: yellow;height: 50px;padding-right:30px;border-right:10px;
}
如图:
此时盒子被撑开
3.运用calc()
.div1 {width: 110px;background: pink;height: 100px;border: 3px solid black;}
.div2 {width:calc(100% - (30px + 10px)); //此时才是div2的最终宽度background: yellow;height: 50px;padding-right:30px;border-right:10px;
}
这样获得的宽度才是最终div2的宽度