calc的介绍

在css3样式中有一个类似与函数的计算属性calc(),它主要用于指定元素的长度,无论是border、margin、pading、font-size和width等属性都可以使用calc来设置动态值。calc支持的运算单位有rem , em , %, px,calc是支持单位的混合使用的,其计算优先级别和数学一致。

calc的用法

.elm{
width:calc(expression);
}

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

注意1: 表达式中有“+”和“-”时,其前后必须要有空格,如"widht: calc(12%+5em)"这种没有空格的写法是错误的;而对于“*”,“/”并没有这种要求,但为了风格的统一,建议前后也要留空格。例如:

width: calc(100% -8px); /* 这样会出错,结果为0 */
width: calc(100% - 8px); /* 当 + - 符号用空格隔开时,运算成功 */

注意2:使用 * / 运算符时,必须保证有一个值为数值类型;

calc的兼容:

在IE9+、FF4.0+、Chrome19+、Safari6+支持较好,移动端支持不理想。 如图:

兼容性前缀:

.elm{
width: calc(80% - 10px);
width: -moz-calc(80% - 10px); /*Firefox*/
width: -webkit-calc(80% - 10px); /*chrome safari*/
}

  

在less如何使用

由于less中会把它当表达式计算掉了,需要在参数外面加上: ~("expression"),如:

.elm{
width: calc(~"100% - 80px");
}

  

或者使用e(“”)包裹在里面,如:

width:e("calc(100% - 80px)");

  

可如果要用变量怎么用呢?也不复杂,像下面这样就搞定啦。

.class {
@cap: 50px;
height: calc(~"100% - @{cap}");
}

  

办公资源网址导航 https://www.wode007.com

calc实现适应布局例子

必须使用设置百分比页面同时又有margin时,会出现不够满挤到下一行的情况,所以要用到calc重新计算百分比

<div class="container">
<div class="row">
<div class="col-sm-4 col-xs-6"></div>
<div class="col-sm-4 col-xs-6"></div>
<div class="col-sm-4 col-xs-12"></div>
</div>
<div class="row">
<div class="col-sm-3 col-xs-3"></div>
<div class="col-sm-6 col-xs-6"></div>
<div class="col-sm-3 col-xs-3"></div>
</div>
<div class="row">
<div class="col-sm-1 col-xs-2"></div>
<div class="col-sm-1 col-xs-2"></div>
<div class="col-sm-2 col-xs-8"></div>
<div class="col-sm-2 col-xs-3"></div>
<div class="col-sm-6 col-xs-3"></div>
</div>
</div>

  

@media screen and (min-width:768px){
.col-sm-{
width: calc(8.1% - 20px);
}
.col-sm-{
width: calc(16.7% - 20px);
}
.col-sm-{
width: calc(% - 20px);
}
.col-sm-{
width: calc(33.3% - 20px);
}
.col-sm-{
width: calc(%- 20px);
}
.col-sm-{
width: calc(% - 20px);
}
}

css3中样式计算属性calc()的使用和总结的更多相关文章

  1. Vue - 在v-repeat中使用计算属性

    1.从后端获取JSON数据集合后,对单条数据应用计算属性,在Vue.js 0.12版本之前可以在v-repeat所在元素上使用v-component指令 在Vue.js 0.12版本之后使用自定义元素 ...

  2. Vue中的计算属性与$watch

    计算属性:在模板中绑定表达式是非常便利的,但是他们实际上只用于简单的操作.模板是为了描述视图的结构.在模板中放入太多的逻辑会让模板过重且难以维护.这就是为什么vue.js将绑定表达式限制为一个表达式. ...

  3. vuejs中的计算属性和监视

    计算属性 1.在computed属性对象中定义计算属性的方法,在页面上使用{{方法名}}来显示计算结果 2.通过getter/setter实现对属性数据的显示和监视 3.计算属性存在缓存,多次读取只执 ...

  4. Vue学习之vue中的计算属性和侦听器

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  5. Blazor和Vue对比学习(基础1.8):Blazor中实现计算属性和数据监听

    1.7章<传递UI片断>,需要做几个案例,这部分暂停消化几天.我们先把基础部分相对简单的最后两章学习了. 计算属性和数据监听是Vue当中的概念,本质上都是监听数据的变化,然后做出响应.两者 ...

  6. css3计算属性(calc)

    如果有固定头部高度和底部高度,内容的高度或者宽度想要根据浏览器屏幕自适应的话,可以用到css3的计算属性,即calc. 用法如下: 内容区域高/宽 = calc(100% - 头部高宽 - 底部高宽) ...

  7. css中新增的属性calc()可以计算使用

    什么是calc: calc是英文单词calculate(计算)的缩写,是css3的一个新增的功能,用来指定元素的长度.可以使用calc()给元素的border.margin.pading.font-s ...

  8. vue2.0中的计算属性

    计算属性是一个很邪门的东西,只要在它的函数里引用了data中的某个属性,当这个属性发生变化的时候,函数仿佛可以嗅探到这个变化,并自动重新执行. 上代码会源源不断的打印出a的值.如果希望b依赖data中 ...

  9. Vue中的计算属性和监听器(computed 与 watch)

    react中数据是单向绑定的,而vue中数据是双向绑定的.为什么? 在react中,主要是通过setState 去改变state的值:而在vue中,会自动的触发set 与get 改变属性的值. 在vu ...

随机推荐

  1. Java Review (一、Java开发环境)

    @ 目录 Java程序运行机制 高级语言运行机制 编译型语言 解释型语言 Java运行机制和JVM 编写 编译 运行 Java开发工具包 JDK JRE JDK.JRE与JVM HelloWord 编 ...

  2. kvm的命令简单使用

    virsh命令常用参数总结   参数 参数说明 基础操作 list 查看虚拟机列表,列出域 start 启动虚拟机,开始一个(以前定义的)非活跃的域 shutdown 关闭虚拟机,关闭一个域 dest ...

  3. 02 . Zabbix配置监控项及聚合图形

    安装Zabbix Agent监控本机 安装agent软件 与server端不同,Agent只需安装zabbix-agent包 cat /etc/yum.repos.d/zabbix.repo [zab ...

  4. vscode 修改标签栏样式为换行全部展示

    目前vscode的标签栏是滚动式的,选择查看都不是很方便,于是想要搞成andriod studio那种换行全部展示的标签栏. 因为vscode是electron写的,因此修改css就可以实现. 修改方 ...

  5. hadoop知识整理(5)之kafka

    一.简介 来自官网介绍: 翻译:kafka,是一个分布式的流处理平台.LinkedIn公司开发.scala语言编写.   1.支持流处理的发布订阅模式,类似一个消息队列系统: 2.多备份存储,副本冗余 ...

  6. JAVA多线程实现的三种方法

    JAVA多线程实现方式主要有三种:继承Thread类.实现Runnable接口.使用ExecutorService.Callable.Future实现有返回结果的多线程.其中前两种方式线程执行完后都没 ...

  7. Linux防火墙iptables详解

    iptables详解(思维导图) 1. 概述 1.1 iptable简介 1.2 防火墙的种类 1.3 netfilter 2. iptables的工作流程 2.1 iptables工作图示 2.2 ...

  8. excel如何快速计算日期对应的生肖?

      是否可以根据日期统计出生肖? 牛闪闪想应该可以吧!结果搜到了一个巨牛无比的公式. =MID("猴鸡狗猪鼠牛虎兔龙蛇马羊",MOD(YEAR(B2),12)+1,1), 利用年份 ...

  9. MySQL LIMIT:限制查询结果的记录条数

    基本的语法格式如下: <LIMIT> [<位置偏移量>,] <行数> LIMIT 接受一个或两个数字参数.参数必须是一个整数常量.如果给定两个参数,第一个参数指定第 ...

  10. 基础拾遗---委托,匿名函数,lambda

    前言: C# 中的委托(Delegate)类似于 C 或 C++ 中函数的指针.委托是存有对某个方法的引用的一种引用类型变量.引用可在运行时被改变.委托(Delegate)特别用于实现事件和回调方法. ...