美文网首页
css3之calc()

css3之calc()

作者: AmazingMax | 来源:发表于2017-09-07 18:09 被阅读15次

在使用calc()之前,我也只是听说有这么一个东西,但在用过之后我才发现这个功能其实很实用。
calc()其实就是英文calculate(计算)的缩写,它看起来像个函数吧?其实不是,calc()是css3中的一个属性。

什么是calc()?

使用calc()我们可以动态的来指定元素的长度,我们可以用它给元素的border、margin、pading、font-size和width等属性设置动态值。
为何它是动态的?因为它是通过计算来决定属性的长度的。

calc()的语法

就像它全称calculate(计算)所说的,就是加 (+)、减(-)、乘(*)、除(/)。

怎么写?我举个例子:

.box {
  width: calc(100% - 10px);
}

这样的话类名为box的类标签,它的宽度就是父元素宽度的100%减去10px,这是一个动态的属性。

实例

我是在工作中遇到这个问题的,情况是这样:
一个div中有左右两个div,但是两个div中有一条中线,我想一般都是用border解决吧!但是因为div的宽度各占50%,在添加了borer之后,两个div的总宽度为50%+50%+1px=100%+1px。
如下图所示:



我们的总宽度超过父元素的总宽度了QAQ!所以.div-right被无情的挤了下来。就会变成这样:

红色代表中间的中线

我们来用calc()把.box-right放上去吧!代码如下:

.div-r{
        float: left;
        width: calc(50% - 1px);
        height: 100%;
        border-left:1px solid red;
        background: #FFB86C;
    }

这样我们就把两个div放进.box了,并且中间成功的放进了一条分割线。╰(´︶`)╯

注意事项

在使用的过程中有一些注意事项:

1、运算符号的左右两边要有空格分开,如calc(50% - 1px);
  乘号和除号可以不要加空格,但是建议加上比较好。

2、考虑到兼容问题,我们还可以加上这些:

   width:-moz-calc(40% - 1px); 
   width:-webkit-calc(40% - 1px); 
   width:calc(40% - 1px);

相关文章

  • [译]calc()是如何工作的

    译自How calc() Works - written by Ire Aderinokun CSS3的calc(...

  • CSS3之calc()

    一、calc()是什么 calc是英文单词calculate(计算)的缩写,是css3新增的功能,calc() 函...

  • css3 calc()

    什么是calc() calc是英文单词calculate(计算)的缩写,calc()是css3的一个新增的功能,用...

  • css3之calc()

    在使用calc()之前,我也只是听说有这么一个东西,但在用过之后我才发现这个功能其实很实用。calc()其实就是英...

  • CSS calc()函数与单位vh 常见height:100vh

    calc() 函数属于CSS3版本内容,用于动态计算长度值。例如:width: calc(100% - 10px)...

  • CSS3 calc()

    什么是calc()? calc()是CSS3的一个新功能,能够动态地计算长度值,任何长度值都可以使用calc()来...

  • css3的calc属性不生效

    css3里面要用到计算属性calc 错误栗子:div{width:calc(100%-50px)}这样是不生效的 ...

  • calc使用

    1. calc基本使用 calc在css3中用于动态计算长度值,calc()中接受数学四则运算,运算的结果为计算后...

  • CSS3:calc() 属性用法

    简介: calc是英文单词calculate(计算)的缩写,是css3的一个新增的功能,可以使用calc()给元素...

  • CSS3----calc()

    1. 什么是calc()? 其实calc是英文单词calculate(计算)的缩写,是css3的一个新增的功能,用...

网友评论

      本文标题:css3之calc()

      本文链接:https://www.haomeiwen.com/subject/fmoijxtx.html