数学表达式 calc() 是 CSS 中的函数,主要用于数学运算。使用 calc() 为页面元素布局提供了便利和新的思路
今天在弄一个自定义 Vue 编辑器组件的时候,在设置编辑器高度时候要设置全屏但是还有一个顶部导航栏,于是我就在想我好像在哪里看到过 css 可以用运算符来计算控件高度的,经过我的一番 Google 发现了这个神奇的小东西,写篇博客纪念一下它吧…
数学表达式calc()是calculate计算的缩写,它允许使用+、-、*、/这四种运算符,可以混合使用%、px、em、rem等单位进行计算
兼容性: IE8 、safari 5.1 、ios 5.1 、android 4.3 不支持,android 4.4 - 4.4.4 只支持加法和减法。IE9 不支持用于 backround-position
[ 注意 ] + 和 - 运算符两边一定要有空白符
<style>
.test1{
border: calc( 1px + 1px ) solid black;
/* calc 里面的运算遵循 * 、 / 优先于 + 、 - 的顺序 */
width: calc(100%/3 - 2*1em - 2*1px);
background-color: pink;
font-style: toggle(italic, normal);
}
.test2{
/* 由于运算符 + 的左右两侧没有空白符,所以失效 */
border: calc(1px+1px) solid black;
/* 对于,不能小于 0 的属性值,当运算结果小于 0 时,按 0 处理 */
width: calc(10px - 20px);
padding-left: 10px;
background-color: lightblue;
}
</style>
<div class="test1">测试文字一</div>
<div class="test2">测试文字二</div>
测试文字一
测试文字二
数学表达式calc()常用于布局中的不同单位的数字运算
<style>
p{margin: 0;}
.parent{overflow: hidden;zoom: 1;}
.left{float: left;width: 100px;margin-right: 20px;}
.right{float: left;width: calc(100% - 120px);}
</style>
<div class="parent" style="background-color: lightgrey;">
<div class="left" style="background-color: lightblue;">
<p>left</p>
</div>
<div class="right" style="background-color: lightgreen;">
<p>right</p>
<p>right</p>
</div>
</div>
left
right
right
好的代码像粥一样,都是用时间熬出来的