CSS的calc函数用法小结


Posted in HTML / CSS onJune 25, 2022

 calc函数怎么用

CSS的calc()函数可以实现属性值的计算,例如下面这段代码:

min-height: calc(100vh - 128px);

这段代码通常会出现在布局中,64px为顶部栏和底部栏的高度,这样就可以轻松实现Sticky Footer布局。

calc()函数支持四则运算,但是乘法中必须有一个值是数字除法的除数必须也是数字(不能是0)。

calc函数不生效?

在使用calc()函数时,可能会出现不生效的问题,究其原因,就是你的VSCode没有开代码格式化功能(开个玩笑);如果我们将上面那带代码修改成:

min-height: calc(100vh-128px);

他就不会生效,原因是这个属性值被解析成两个长度单位,分别是100vh-128px,所以在我们使用**********运算符时两边必须要有空白字符**。

使用calc函数完成一些布局方案

CSS3的calc()函数可以帮助我们实现很多布局方案,我们依次介绍一下。

水平垂直居中

步骤如下:

  • 使子元素相对于容器元素定位

  • 子元素开启绝对定位

  • 设置该元素的偏移量,值为50% 减去宽度/高度的一半

实现CSS代码如下:

.parent {
  /* 1. 使子元素相对于本元素定位 */
  position: relative;
}
.child {
  /* 2. 开启绝对定位 */
  position: absolute;
  /* 3. 设置该元素的偏移量,值为 50%减去宽度/高度的一半 */
  left: calc(50% - 150px);
  top: calc(50% - 150px);
}

 两列布局

步骤如下:

  • 左边列开启浮动

  • 右边列开启浮动

  • 右边列宽度为父级 100%减去左列的宽度

实现CSS代码如下:

.left {
  /* 左边列开启浮动 */
  float: left;
}
.right {
  /* 右边列开启浮动 */
  float: left;
  /* 宽度减去左列的宽度 */
  width: calc(100% - 200px);
}

sticky footer布局

使用calc函数实现sticky footer布局比较简单,中间的容器最少高度为视口宽度的100% - 头部和底部两部分的高度即可完成该功能。

实现CSS代码如下:

.container {
    /* 这里的 中间 部分的容器最少为视口宽度的 100% - 头部和底部两部分的高度即可完成该功能 */
    min-height: calc(100vh - 200px);
}

全屏布局

实现步骤如下:

  • 通过calc函数计算出中间容器的高度。

  • 中间出现滚动条的容器设置overflow: auto即出现滚动条的时候出现滚动条。

实现CSS代码如下:

.content {
    overflow: hidden;
    /* 通过 calc 计算容器的高度 */
    height: calc(100vh - 200px);
}
.left {
    height: 100%;
}
.right {
    /* 如果超出出现滚动条 */
    overflow: auto;
    height: 100%;
}
.right-in {
    /* 假设容器内有500px的元素 */
    height: 500px;
}

到此这篇关于CSS的calc函数用法小结的文章就介绍到这了,更多相关css calc函数内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章,希望大家以后多多支持三水点靠木!

 

Tags in this post...

HTML / CSS 相关文章推荐
css3制作动态进度条以及附加jQuery百分比数字显示
Dec 13 HTML / CSS
HTML5自定义data-* data(obj)属性和jquery的data()方法的使用
Dec 13 HTML / CSS
HTML4和HTML5之间除了相似以外的10个主要不同
Dec 13 HTML / CSS
HTML5中的Scoped属性使用实例
Apr 23 HTML / CSS
关于html字符串正则判断和匹配的具体使用
Dec 12 HTML / CSS
video.js支持m3u8格式直播的实现示例
May 20 HTML / CSS
HTML速写之Emmet语法规则的实现
Apr 07 HTML / CSS
详解CSS玩转图片Base64编码
May 25 HTML / CSS
CSS3中Animation实现简单的手指点击动画的示例
Jul 15 HTML / CSS
带你了解CSS基础知识,样式
Jul 21 HTML / CSS
CSS使用伪类控制边框长度的方法
Jan 18 HTML / CSS
使用CSS实现音波加载效果
May 07 HTML / CSS
flex布局中使用flex-wrap实现换行的项目实践
Jun 21 #HTML / CSS
css3手动实现pc端横向滚动
Jun 21 #HTML / CSS
使用CSS自定义属性实现骨架屏效果
Jun 21 #HTML / CSS
css如何把元素固定在容器底部的四种方式
css中有哪些方式可以隐藏页面元素及区别
Jun 16 #HTML / CSS
CSS控制继承中的height能变为可继承吗
Jun 10 #HTML / CSS
css样式important规则的正确使用方式
Jun 10 #HTML / CSS
You might like
如何在PHP中使用Oracle数据库(4)
2006/10/09 PHP
文件系统基本操作类
2006/11/23 PHP
PHP中的integer类型使用分析
2010/07/27 PHP
PHP学习笔记之数组篇
2011/06/28 PHP
PHP中实现中文字符进制转换原理分析
2011/12/06 PHP
twig模板获取全局变量的方法
2016/02/05 PHP
PHP socket 模拟POST 请求实例代码
2016/07/18 PHP
js设置组合快捷键/tabindex功能的方法
2013/11/21 Javascript
FF IE浏览器修改标签透明度的方法
2014/01/27 Javascript
Backbone.js的Hello World程序实例
2015/06/19 Javascript
javascript常用的方法分享
2015/07/01 Javascript
jquery实现点击弹出带标题栏的弹出层(从右上角飞入)效果
2015/09/19 Javascript
jQuery-1.9.1源码分析系列(十)事件系统之事件体系结构
2015/11/19 Javascript
图解js图片轮播效果
2015/12/20 Javascript
微信小程序图片宽100%显示并且不变形
2017/06/21 Javascript
关于vue中的ajax请求和axios包问题
2018/04/19 Javascript
javascript+Canvas实现画板功能
2020/06/23 Javascript
vue 验证两次输入的密码是否一致的方法示例
2020/09/29 Javascript
[10:28]2018DOTA2国际邀请赛寻真——VGJ.S寻梦之路
2018/08/15 DOTA
Python通过matplotlib画双层饼图及环形图简单示例
2017/12/15 Python
python通过paramiko复制远程文件及文件目录到本地
2019/04/30 Python
Python学习笔记之自定义函数用法详解
2019/06/08 Python
python 画二维、三维点之间的线段实现方法
2019/07/07 Python
python3通过subprocess模块调用脚本并和脚本交互的操作
2020/12/05 Python
python中用Scrapy实现定时爬虫的实例讲解
2021/01/18 Python
优衣库美国官网:UNIQLO美国
2018/04/14 全球购物
施华洛世奇意大利官网:SWAROVSKI意大利
2018/07/23 全球购物
英国大码女性时装零售商:Evans
2018/08/29 全球购物
TUMI香港官网:国际领先的行李箱、背囊品牌
2021/03/01 全球购物
毕业自荐书
2013/12/09 职场文书
培训讲师岗位职责
2014/04/13 职场文书
安全负责人任命书
2014/06/06 职场文书
水电施工员岗位职责
2015/04/11 职场文书
队列队形口号
2015/12/25 职场文书
人生哲理妙语30条:淡写流年,笑过人生
2019/09/04 职场文书
Python实现信息轰炸工具(再也不怕说不过别人了)
2021/06/11 Python