博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
css3 属性——calc()
阅读量:5023 次
发布时间:2019-06-12

本文共 1700 字,大约阅读时间需要 5 分钟。

    其实在之前学习CSS3的时候,我并没有注意到有calc()这个属性,后来在看一个大牛的代码的时候看到了这个,然后就引发了后来的一系列的查找、学习,以及这篇博客的诞生。好了,废话不多说了,来干正事。

一.基本介绍

   其实,calc()这个形式看起来就很容易让人想到Javascript里的函数,当然他不是js里的函数,但是他有着类似函数的功能,可以用来计算,括号里是一个表达式,通常用calc()来指定元素的长度,不管是width、height、border还是padding等都可以用他来指定。说白了,calc()就是css3的一个指定元素长度的属性,他的特殊之处在于他可以做计算,而且支持混合使用各种单位,比如%、px、em等。所以这个属性特别适用于那些自适应的布局。
 兼容性:在IE9+、FF4.0+、Chrome19+、Safari6+都得到了较好支持(据说在使用时要加上供应商前缀,但是我测试了一下,不加也是可以用的),但是在移动端的支持不是很好。
二.基本用法

.element{
width:calc(expression); }

其中,expression是一个用来计算长度的表达式,支持“+”,“-”,“*”,“/”运算符。

特别声明表达式中有“+”,“-”运算符的,前后必须要有空格,例如 “width:calc(100% - 20px)”这种写法;而对于“*”,“/”并没有这种要求,但为了风格的统一,建议前后也要留空格。

三.来看一个例子

加一些基本样式:

.container{
background:red; width:300px; } .box{
background:skyblue; width:100%; height:200px; }

在浏览器中的效果是这样的(因为.box的宽度是100%,所以完全遮住了.container元素):

像这种宽度设置的是100%,若在加上padding,或者border,就会将外层盒子撑破,就像下面这样:

.container{
background:red; width:300px; padding:20px 0;/*加这个padding是为了能看到这个元素,不被box全部遮住*/ } .box{
background:skyblue; width:100%; height:200px; padding:0 20px; }

效果是这样的(盒子被撑破了):

对于这种情况,以及其他一些用百分比来指定长度的情况,用calc()就能避免这种错误,上面的例子可以写成下面这样:

.container{
background:red; width:300px; padding:20px 0; } .box{
background:skyblue; width:90%; /*写给那些不支持calc()属性的浏览器*/ border:2px solid green; padding:0 20px; width:calc(100% - (20px + 2px) * 2); /*用100%减去左右两个20px的padding和2px的border*/ height:200px; }

然后效果是这样的:

 

对于calc(),总结以下要点:

    1.兼容性:在IE9+、FF4.0+、Chrome19+、Safari6+支持较好,移动端支持不理想;

    2.表达式支持加、减、乘、除运算,同时也支持单位的混合使用(%、px、em等);

    2.表达式中有“+”,“-”运算符的,前后必须要有空格。

   

 更多博客,请移步:

转载于:https://www.cnblogs.com/dan-dan/p/4589616.html

你可能感兴趣的文章
pta 编程题14 Huffman Codes
查看>>
初始化bootstrap treeview树节点
查看>>
python selenium向<sapn>标签中写入内容
查看>>
JS常用坐标
查看>>
使用”结构化的思考方式“来编码和使用”流程化的思考方式“来编码,孰优孰劣?...
查看>>
C#调用斑马打印机打印条码标签(支持COM、LPT、USB、TCP连接方式和ZPL、EPL、CPCL指令)【转】...
查看>>
关于git的认证方式
查看>>
字符串按照字典序排列
查看>>
IOS 开发调用打电话,发短信
查看>>
CI 框架中的日志处理 以及 404异常处理
查看>>
keepalived介绍
查看>>
css3 标签 background-size
查看>>
python itertools
查看>>
Linux内核调试技术——jprobe使用与实现
查看>>
样式、格式布局
查看>>
ubuntu设计文件权限
查看>>
Vue双向绑定原理详解
查看>>
Android基础总结(5)——数据存储,持久化技术
查看>>
关于DataSet事务处理以及SqlDataAdapter四种用法
查看>>
bootstrap
查看>>