IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

css3 calc()功能小窥

前端观察 2012-04-09 12:16:31 累计浏览 2,282 次
本机暂存

    之前,我们想要实现一个完美的宽度自适应的输入框好麻烦,曾经也被作为对前端技术的一个挑战。类似的常见场景还有100%宽+边框的容器等。遇到这些情况,我们不得不分外小心,因为各个浏览器的表现可能不一致。

    现在,firefox和webkit相继支持calc()功能了,我们也可以学习下了。

calc()是干嘛的?

    calc()是单词calculate(计算)的缩写,是css3的一个新的长度单位功能,可以使用简单的数学运算。

    嗯,CSS3越来越高级了。

运算规则

    calc()使用通用的数学运算规则,但是也提供更智能的功能:

  • 使用“+”“-”“*”“/”四则运算;
  • 可以使用百分比、px、em、rem等单位;
  • 可以混合使用各种单位进行计算。
  • 实例:

        我们来看几个小例子来理解下calc()功能吧:

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

        容器宽度加上边框宽度正好100%。

    1
    2
    3
    .box{
    width:calc(10em+20px)
    }

        宽度,10em加20px。

    1
    2
    3
    4
    5
    6
    7
    .box{
    margin-left:20px;
    width:calc(100%/3-20px);
    }
    .box:nth-child(3n){
    margin-left:0;
    }

        3栏等宽布局。

    浏览器支持

        firefox 4.0+已经开支支持calc()功能,不过要使用-moz-calc()私有属性,chrome从19 dev版,也开始支持私有的-webkit-calc()写法,IE9这次则牛逼了一次,原生支持标准的不带前缀的写法了。Opera貌似还不支持~~

        所以如果我们要用这个属性的话,要记得带上各浏览器的兼容性。

    同分类推荐文章

    1. translateZ() (2026-06-25 21:18:56)
    2. translateY() (2026-06-25 21:17:56)
    3. translateX() (2026-06-25 21:16:01)

    查看更多 前端 文章 →

    建议继续学习

    1. css3:box-shadow边框阴影属性值详解 (累计阅读 27,109)
    2. iframe里src="about:blank"的问题。 (累计阅读 8,088)
    3. 程序员眼里IE浏览器是什么样的 (累计阅读 8,011)
    4. 前端必须熟悉的10个CSS3属性 (累计阅读 7,718)
    5. 30个超棒的404错误页面 (累计阅读 7,301)
    6. 使用CSS3开启GPU硬件加速提升网站动画渲染性能 (累计阅读 6,635)
    7. css3-animation制作逐帧动画 (累计阅读 6,516)
    8. display: inline-block在IE6、IE7下bug的解决方法 (累计阅读 6,464)
    9. HTML5+CSS3 loading 效果收集 (累计阅读 6,438)
    10. BO报表系统嵌入Iframe在firefox下的错误修改 (累计阅读 5,701)