• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com专业计算机教程网站
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • html/xhtml
  • html5
  • CSS
  • XML/XSLT
  • Dreamweaver教程
  • Frontpage教程
  • 心得技巧
  • bootstrap
  • vue
  • AngularJS
  • HBuilder教程
  • css3
  • 浏览器兼容
  • div/css
  • 网页编辑器
  • axure
您的位置:首页 > 网页设计 >CSS > 初探CSS3中的calc()功能

初探CSS3中的calc()功能

作者:神飞 字体:[增加 减小] 来源:互联网 时间:2017-08-06

本文主要包含CSS3,calc()等相关知识,神飞 希望在学习及工作中可以帮助到您

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

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

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

嗯,CSS3越来越高级了。
运算规则

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

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

实例:

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

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

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

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

宽度,10em加20px。

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

3栏等宽布局。
浏览器支持

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

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


eric meyer提到w3c规范的一条备注(评论里面的同学也有提到):

    Note that the grammar requires spaces around binary ‘+’ and ‘-’ operators. The ‘*’ and ‘/’ operators do not require spaces. via CSS3 Values and Units specification

也就是说,”+”、”-“两个符号边上必须要有空格,而”*”、”/”符号则不是必须的。

然后我们可能要这样写:

  1. width: calc(100%/3 - 2*1em - 2*1px);  

这样写也是可以的:

  1. width: calc(100% / 3 - 2 * 1em - 2 * 1px);  

但是这样写就是错的:

  1. width: calc(100%/3-2*1em-2*1px);  

嗯,这样很容易写错啊。还好现在支持的浏览器还不太多,我会继续观望并保持更新~~

您可能想查找下面的文章:

  • 使用CSS3制作一个简单的进度条(demo)
  • 利用CSS3伪元素实现逐渐发光的方格边框
  • CSS3实现内凹圆角的实例代码
  • 利用HTML5+CSS3实现3D转换效果实例详解
  • css3+伪元素实现鼠标移入时下划线向两边展开的效果
  • CSS3实现自定义Checkbox特效实例代码
  • 总结30个CSS3选择器
  • CSS3模拟动画下拉菜单效果
  • CSS3动画:5种预载动画效果实例
  • CSS3 仿微信聊天小气泡实例代码

相关文章

  • 2017-08-06IE8 CSS hack
  • 2017-08-06CSS滤镜同时过滤文字的问题的解决方法
  • 2017-08-06div overflow 超出隐藏属性使用说明
  • 2017-08-06css中IE判断语句 if !IE
  • 2017-08-06设置一个div层的最小宽度或最小高度
  • 2017-08-06CSS margin 属性定义边外补白
  • 2017-08-06如何定义html hr 样式(多种效果)
  • 2017-08-06a标签有小手状和无小手状css的属性介绍
  • 2017-08-06CSS利用伪元素实现导航栏斜线分隔
  • 2017-08-06meta http-equiv="X-UA-Compatible" content="IE=7" 意思是将IE8用IE7进行渲染

文章分类

  • html/xhtml
  • html5
  • CSS
  • XML/XSLT
  • Dreamweaver教程
  • Frontpage教程
  • 心得技巧
  • bootstrap
  • vue
  • AngularJS
  • HBuilder教程
  • css3
  • 浏览器兼容
  • div/css
  • 网页编辑器
  • axure

最近更新的内容

    • DIY属于个人开发使用的CSS Reset
    • 基于css3仿造window7的开始菜单
    • 一款纯css实现的漂亮导航菜单(也适用于个人中心)
    • css中display:block;的用法及适用标签详解
    • 如何解决IE6/IE7不识别display:inline-block属性
    • CSS a:hover伪类在IE6下的问题
    • 详细了解CSS中的class与id区别及用法
    • CSS3中的Opacity多浏览器透明度兼容性问题
    • CSS Grid布局教程之什么是网格布局
    • css实现li中文本超出行宽自动隐藏

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有