• 【CSS3】css中的数学运算-calc()


    一、什么是calc()?

    calc()从字面我们可以把他理解为一个函数function。其实calc是英文单词calculate(计算)的缩写,是css3的一个新增的功能,用来指定元素的长度。

    比如说,你可以使用calc()给元素的border、margin、pading、font-size和width等属性设置动态值。为何说是动态值呢?因为我们使用的表达式来得到的值。不过calc()最大的好处就是用在流体布局上,可以通过calc()计算得到元素的宽度。

    二、calc()有什么用?

    calc()能让你给元素的做计算,你可以给一个div元素,使用百分比、em、px和rem单位值计算出其宽度或者高度,比如说“width:calc(50% + 2em)”,这样一来你就不用考虑元素DIV的宽度值到底是多少,而把这个烦人的任务交由浏览器去计算。

    三、calc()的语法

    calc()语法非常简单,就像我们小时候学加 (+)、减(-)、乘(*)、除(/)一样,使用数学表达式来表示:

    1. .box{
    2. border:1px solid #ddd;
    3. width:calc(100% - 100px);
    4. background:#9AC8EB;
    5. }

    四、calc()的运算规则

    1. 使用“+”、“-”、“*” 和 “/”四则运算;
    2. 可以使用百分比、px、em、rem等单位;
    3. 可以混合使用各种单位进行计算;
    4. 表达式中有“+”和“-”时,其前后必须要有空格,如"widht: calc(12%+5em)"这种没有空格的写法是错误的;
    5. 表达式中有“*”和“/”时,其前后可以没有空格,但建议留有空格。
    6. 注意:表达式中不能用"()"。如果有必须拆分。如(100% - 45px)/ 2必须写成 100% / 2 - 45px / 2

    五、浏览器的兼容性

     在IE9+、FF4.0+、Chrome19+、Safari6+都得到了较好的支持,使用时同样在其前面加上各浏览器厂商的识别符前缀

    1. .element {
    2. -moz-calc(expression);
    3. -webkit-calc(expression);
    4. -o-calc(expression);
    5. -ms-calc(expression);
    6. calc(expression);
    7. }

     

    5、应用

      众所周知,如果元素的宽度为100%时,其自身不带其它盒模型属性设置还好,如果有别的类似margin、padding或border的属性设置,那将导致盒子被撑破。为了解决撑破容器的问题,以前我们只能计算div.box的宽度,用容器的宽度减去padding和border的值 ,但有时候我们苦于不知道元素的总宽度,比如说是自适应布局,只知道一个百分比值,但其它的值又是*px之类的值,这就比较难解决了。随着css3的出现,其中利用box-sizing来改变元素的盒模型以达到最终想要的效果,但是calc()解决此问题更加方便。

  • 相关阅读:
    [Ubuntu 18.04] 搭建文件夹共享之Samba服务器
    【ArcGIS微课1000例】0055:根据图层创建自定义图例符号案例教程
    C#Winform中打印预览时设置横向打印
    堆栈的定义和区别
    导出视频里的字幕
    @alilclowcode-engine-ext@1.0.5 不支持安装react@^16.3.0
    2022海亮SC游记
    什么是设计模式?
    牛客网AI面试第二弹
    一文解决:Swagger API 未授权访问漏洞问题
  • 原文地址:https://blog.csdn.net/m0_64346035/article/details/126873287