CSS3的calc()使用

什么是calc()?

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

.elm {width: calc(expression);
}

其中"expression"是一个表达式,用来计算长度的表达式。

calc()的运算规则

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

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

浏览器的兼容性

浏览器对calc()的兼容性还算不错,在IE9+、FF4.0+、Chrome19+、Safari6+都得到较好支持,同样需要在其前面加上各浏览器厂商的识别符,不过可惜的是,移动端的浏览器还没仅有“firefox for android 14.0”支持,其他的全军覆没。

大家在实际使用时,同样需要添加浏览器的前缀

 .elm {/*Firefox*/-moz-calc(expression);/*chrome safari*/-webkit-calc(expression);/*Standard */calc();}
.box {background: #f60;height: 50px;padding: 10px;border: 5px solid green;
width: 90%;/*写给不支持calc()的浏览器*/width:-moz-calc(100% - (10px + 5px) * 2);width:-webkit-calc(100% - (10px + 5px) * 2);width: calc(100% - (10px + 5px) * 2);
}

值得注意的一点是,在calc函数里面运算符两侧必须各保留一个空格,否则函数会报错

转载于:https://www.cnblogs.com/gopark/p/9455687.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/249749.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

typescript 类型映射 (ReadOnly、Partial)

有时候需要一个类型&#xff0c;是依赖于上一个类型但是&#xff0c;对属性的要求去不同interface Person{name: string;agent: number; } type Person2 Readonly<Person>; type Person3 Partial<Person>; class Test {run() {let person: Person {name: dd,age…

JAVA中几种常用的RPC框架介绍

RPC是远程过程调用的简称&#xff0c;广泛应用在大规模分布式应用中&#xff0c;作用是有助于系统的垂直拆分&#xff0c;使系统更易拓展。Java中的RPC框架比较多&#xff0c;各有特色&#xff0c;广泛使用的有RMI、Hessian、Dubbo等。RPC还有一个特点就是能够跨语言&#xff0…

C#中的多线程 - 同步基础

C#中的多线程 - 同步基础 C#中的多线程 - 同步基础 1同步概要在第 1 部分&#xff1a;基础知识中&#xff0c;我们描述了如何在线程上启动任务、配置线程以及双向传递数据。同时也说明了局部变量对于线程来说是私有的&#xff0c;以及引用是如何在线程之间共享&#xff0c;允许…

WC2019 自闭记

不咕了 Day 1 2019/1/24 辣么快就到冬令营了&#xff0c;还沉迷于被柿子吊打的状态的菜鸡一时半会还反应不过来。我们学校这次分头去的冬令营&#xff0c;差点上不了车。这次做的动车居然直达广州&#xff0c;强啊。 然鹅还是到太晚&#xff0c;没饭吃了。路上花了15大洋买了个…

v-slot vue2.6新增指令使用指南

子组件 <template><div class"wrapper"><slot name"demo" :msg"msg" text"this is a slot demo , ">this is demo slot.</slot></div> </template><script>export default {components: {…

跨语言RPC框架Thrift详解

一、 概念 Apache的Thrift软件框架&#xff0c;是用来进行可伸缩的、跨语言的服务开发&#xff0c;它通过一个代码生成引擎来构建高效、无缝的服务&#xff0c;这些服务能够实现跨语言调度&#xff0c;目前支持的语言有&#xff1a; C, Java, Python, PHP, Ruby, Erlang, Perl,…

小知识

1.时间格式的处理 new Date().format(yyyy-MM-dd hh:mm:ss) 2.保留两位小数的方法 element.recTime element.recTime.toFixed(2) 3.如何判断一个对象为空的方法 JSON.stringify(this.getEcho) ! "{}" 4.判断时间是否为标准格式的方法 (this.formValidate.outDateti…

增加标 和增加其内容

create table student( sno varchar(20) not null comment学号, sname varchar(20) not null comment学生姓名, ssex varchar(20) not null comment学生性别, sbirthday datetime comment学生出生年月, class varchar(20) comment 学生所在班级, primary key…

RPC服务和HTTP服务对比

很长时间以来都没有怎么好好搞清楚RPC&#xff08;即Remote Procedure Call&#xff0c;远程过程调用&#xff09;和HTTP调用的区别&#xff0c;不都是写一个服务然后在客户端调用么&#xff1f;这里请允许我迷之一笑~Naive&#xff01;本文简单地介绍一下两种形式的C/S架构&am…

MTK-TP(电阻屏校准程序ts_lib移植)

现今的项目中已经很少有使用电阻TP&#xff0c;但总有些奇怪的需求。如果项目中遇到需要校准电阻屏如何保证较快且较稳的调试TP呢。这里介绍使用ts_lib库来进行调试。 当然也可以使用一些常见的校准算法&#xff0c;采集5点&#xff0c;但最终的公式应该是不变的&#xff1a; X…

mac vscode 实用快捷键

cmddel:光标左边删到头 cmdfndel:光标右侧删到头转载于:https://www.cnblogs.com/smzd/p/11474488.html

ONENET读取与控制麒麟座MINI开发板LED状态

硬件 麒麟座MINI开发板V1.4 嵌入式软件 OneNET_Demo_ESP8266_EDP_Led 工程修改内容 led.c文件修改 函数LED_Init&#xff0c;mini开发板LED所在GPIO为PB6、PB7、PB8、PB9 函数LED_GetValue&#xff0c;mini开发板LED状态与IO口状态相反 /** * brief LED指示灯初始化函数**/v…

洛谷 - P1217 - 回文质数 - 枚举

https://www.luogu.org/problemnew/show/P1217 考虑暴力生成所有的回文数然后再判断是不是质数。注意个位的选择实际上只有4种。所以是 $4*10^3*10^34*10^6$ &#xff0c;完全充裕的复杂度。 #include<bits/stdc.h> using namespace std; #define ll long longint a,b; v…

git commit之后,想撤销commit

写完代码后&#xff0c;我们一般这样git add . //添加所有文件git commit -m "本功能全部完成"执行完commit后&#xff0c;想撤回commit&#xff0c;怎么办&#xff1f;这样凉拌&#xff1a;git reset --soft HEAD^这样就成功的撤销了你的commit注意&#xff0c;仅仅…

引用数据类型

1.Scanner类 Scanner类是引用数据类型的一种&#xff0c;我们可以使用该类来完成用户键盘录入&#xff0c;获取到录入的数据。 引用数据类型的使用&#xff1a; 与定义基本数据类型变量不同&#xff0c;引用数据类型的变量定义及赋值有一个相对固定的步骤或格式。 数据类型 变…

phpmyadmin登录远程mysql数据库

之前只用phpmyadmin登录本地的mysql&#xff0c;管理另一个远程数据库的时候发现&#xff0c;单纯用命令行处理字符串、换行符实在是不好使&#xff0c;所以配置了远程登录mysql&#xff0c;很简单的问题结果没有搜到合适的方法&#xff0c;所以记录下我的配置方式。 phpmyadmi…

activemq的使用场景

一、消息队列概述 消息队列中间件是分布式系统中重要的组件&#xff0c;主要解决应用耦合&#xff0c;异步消息&#xff0c;流量削锋等问题。实现高性能&#xff0c;高可用&#xff0c;可伸缩和最终一致性架构。是大型分布式系统不可缺少的中间件。 目前在生产环境&#xff0c…

复习JavaScript随手记

数据类型 基本类型 stringnumberbooleanundefinednumber类型,包含整数浮点数 NaN和自己都不相等,涉及NaN的计算结果都是NaN isNaN()函数用于判断一个数是不是NaN 引用类型 object类型 function类型 继承自object object类型定义了prototype属性 可以通过它动态给对象绑定方法和…

TP5在前端时间戳转换为时间格式

value"{:date(Y-m-d H:i:s,$data[add_date])}" 例如&#xff1a; <td>{:date(Y-m-d H:i:s,$d[create_time])}</td> 转载于:https://www.cnblogs.com/shark1100913/p/9468077.html

Java(发布/订阅模式)

1、概述 观察者模式又称为发布/订阅(Publish/Subscribe)模式 观察者设计模式涉及到两种角色&#xff1a;主题&#xff08;Subject&#xff09;和观察者&#xff08;Observer&#xff09; &#xff08;1&#xff09;Subject模块 Subjec模块有3个主要操作 addObserver()&#…