数学表达式 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


好的代码像粥一样,都是用时间熬出来的