CSS3 的 calc属性
1. 简介
calc 是英文单词 calculate(计算) 的缩写,是 css3 的一个新增的功能,可以使用 calc() 给元素的 border、margin、pading、font-size 和 width 等属性设置动态值。
calc() 能给元素的某些属性做计算,可以给一个 div 元素,使用百分比、em、px 和 rem 单位值计算出其宽度或者高度,比如说:width:calc(50% + 2em)
2. 语法
.elm { width: calc(expression);//其中"expression"是一个用来计算长度的表达式 }
3. 运算规则
(1)使用“+”、“-”、“*” 和 “/”四则运算;
(2)可以使用百分比、px、em、rem等单位;
(3)可以混合使用各种单位进行计算;
(4)表达式中有“+”和“-”时,其前后必须要有空格,如"widht:calc(12%+5em)"这种没有空格的写法是错误的;
(5)表达式中有“*”和“/”时,其前后可以没有空格,但建议留有空格。
4. 例子
例子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,其宽度随着页面宽度而自适应
<!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>