簡介:
calc是英文單詞calculate(計算)的縮寫,是css3的一個新增的功能,可以使用calc()給元素的border、margin、pading、font-size和width等屬性設(shè)置動態(tài)值。
calc()能給元素的做計算,可以給一個div元素,使用百分比、em、px和rem單位值計算出其寬度或者高度,比如說:width:calc(50% + 2em)
calc()的語法:
.elm {
width: calc(expression);//其中"expression"是一個用來計算長度的表達(dá)式
}
calc()的運(yùn)算規(guī)則:
1 使用“+”、“-”、“*” 和 “/”四則運(yùn)算;
2 可以使用百分比、px、em、rem等單位;
3 可以混合使用各種單位進(jìn)行計算;
4 表達(dá)式中有“+”和“-”時,其前后必須要有空格,如"widht:calc(12%+5em)"這種沒有空格的寫法是錯誤的;
5 表達(dá)式中有“*”和“/”時,其前后可以沒有空格,但建議留有空格。
注:使用時,注意查看瀏覽器兼容性

瀏覽器兼容性
例子1:

每個格子width隨著瀏覽器的放大縮小而改變
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>calc</title>
<style type="text/css">
* {margin: 0;padding: 0;}
.col-3 {
width: calc(100%/4 - 5px);
float: left;
margin-right: calc(5px*4/3);
background: #eee;
color: #333;
height: 100px;
text-align: center;
margin-bottom: calc(5px*4/3);
font-size: 18px;
line-height: 100px;
}
.col-3:nth-child(4n) {margin-right: 0;}
</style>
</head>
<body>
<div class="container">
<div class="col-3">1</div>
<div class="col-3">2</div>
<div class="col-3">3</div>
<div class="col-3">4</div>
<div class="col-3">5</div>
<div class="col-3">6</div>
<div class="col-3">7</div>
<div class="col-3">8</div>
<div class="col-3">9</div>
<div class="col-3">10</div>
<div class="col-3">11</div>
<div class="col-3">12</div>
<div class="col-3">13</div>
<div class="col-3">14</div>
<div class="col-3">15</div>
<div class="col-3">16</div>
</div>
</body>
</html>
例子2:

a1和a2之間、跟頁面左右間隔都是30px,其寬度隨著頁面寬度而自適應(yīng)
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<style>
.container {
width: 500px;
height: 100px;
background: pink;
margin: 50px auto;}
.a1 {
float: left;
margin: 30px 15px 0 30px;
width: -webkit-calc((100% - 90px)/2);
background: red;
}
.a2 {
float: left;
margin: 30px 30px 0 15px;
width: -webkit-calc((100% - 90px)/2);
background: green;
}
</style>
</head>
<body>
<div class="container">
<div class="a1"> a1 </div>
<div class="a2"> a 2 </div>
</div>
</body>
</html>