简单来讲就是CSS3中新增的一个函数,calculate(计算)的缩写。用于动态计算宽/高,你可使用calc()给元素的各个属性设置值【margin、border、padding、font-size】等,web
calc的语法就是简单的四则运算,浏览器
主要用于计算不肯定值,例如一个外边距为10px,宽度为100%的元素,这种状况咱们怎么设置呢?若是设置了bash
width: 100%;
margin: 10px;
复制代码
你能够看出这个box已经溢出了,那么怎么解决呢?就能够用calc函数了。markdown
width: 800px;
width: calc(100% - (10 *2)px);
margin: 10px;
复制代码
vw、vh、vmin、vmax是一种视窗单位,也是相对单位。它相对的不是父节点或者页面的根节点。而是由视窗(Viewport)大小来决定的,单位 1,表明相似于 1%。 视窗(Viewport)是你的浏览器实际显示内容的区域—,换句话说是你的不包括工具栏和按钮的网页浏览器。函数
具体描述以下:工具
(1)% 是相对于父元素的大小设定的比率,vw、vh 是视窗大小决定的。 (2)vw、vh 优点在于可以直接获取高度,而用 % 在没有设置 body 高度的状况下,是没法正确得到可视区域的高度的,因此这是挺不错的优点。spa
上面咱们使用%结合calc使用能够实现想要的效果,为何要引入vw和vh呢?上面说%和vw,vh的区别中,% 在没有设置 body 高度的状况下,是没法正确得到可视区域的高度的。code
width: 800px; /* fallback for b*/ width: -moz-calc(100vw - (2 * 10)px); width: -webkit-calc(100vw -(2 * 10)px); width: calc(100vw - (2 * 10)px); 复制代码
height: 800px;
height: -moz-calc(100vh - (2 * 10)px);
height: -webkit-calc(100vh - (2 * 10)px);
height: calc(100vh - (2 * 10)px);
复制代码