A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 AngularBaby 于 2018-5-3 17:07 编辑




【简介】
       calc()css3的一个新增的功能,用来指定元素的长度,你可以使用calc()给元素的bordermarginpadingfont-sizewidth等属性动态的设置值。为何它是动态的?因为它是通过计算来决定属性的长度的。
calc()的运算法则与注意点】
  • 使用 "+""-""*" "/" 运算
  • 可以使用百分比、pxemrem等单位运算
  • 可以混合使用各种单位进行运算
  • 需要注意的是,运算符前后都需要保留一个空格
【浏览器的兼容性】
       IE9+FF4.0+Chrome19+Safari6+都得到了较好的支持,使用时同样在其前面加上各浏览器厂商的识别符前缀
[CSS] 纯文本查看 复制代码
.element {

  -moz-calc(expression);  /*火狐*/

  -webkit-calc(expression); /*谷歌*/

  -o-calc(expression);   

  -ms-calc(expression);

  calc(expression);     

}
【案例】
1.    如果,左边的盒子是一个固定的宽度,右边盒子是一个响应式的宽度,如图所示的效果

案例演示效果
案例代码
[HTML] 纯文本查看 复制代码
<!doctype html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <title>Document</title>

    <style>

        *{  padding: 0;  margin: 0;  }

        .box{  margin-top: 20px;  }

        .left,.right{  float: left;  }

        .left{  width: 200px;  height: 200px;  background-color: lightblue;  margin-right: 20px;  }

        .right{  width: calc( 100% - 200px - 20px);  height: 200px;  background-color: lightpink;  }

        .clearfix::after{  content: "";  display: block;  clear: both;  height: 0;  }

    </style>

</head>

<body>

    <div class="box clearfix">

        <div class="left"></div>

        <div class="right"></div>

    </div>

    <div class="box clearfix">

        <div class="left"></div>

        <div class="right"></div>

    </div>

</body>

</html>
2.    如果卡片与卡片之间没有距离,那写 width: 33.33%是没有什么问题的
那如果是以下这种情况呢,图片与图片之间的距离是 20px
每个盒子设置width: calc((100% - 40px)/3)就可以了



0 个回复

您需要登录后才可以回帖 登录 | 加入黑马