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 用border写 空心三角箭头 (两种写法)
Sep 29 HTML / CSS
IE滤镜与CSS3效果(详细整理分享)
Jan 25 HTML / CSS
目前不被任何主流浏览器支持的CSS3属性汇总
Jul 21 HTML / CSS
CSS3中各种颜色属性的使用教程
May 17 HTML / CSS
css3旋转木马_动力节点Java学院整理
Jul 12 HTML / CSS
CSS3田字格列表的样式编写方法
Nov 22 HTML / CSS
H5 canvas中width、height和style的宽高区别详解
Nov 02 HTML / CSS
html5 CSS过度-webkit-transition使用介绍
Jul 02 HTML / CSS
HTML页面中添加Canvas标签示例
Jan 01 HTML / CSS
amazeui页面分析之登录页面的示例代码
Aug 25 HTML / CSS
canvas绘制图片drawImage使用方法
Sep 15 HTML / CSS
HTML速写之Emmet语法规则的实现
Apr 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中,文件上传
2006/12/06 PHP
PHP判断变量是否为0的方法
2014/02/08 PHP
thinkphp模板继承实例简述
2014/11/26 PHP
9个实用的PHP代码片段分享
2015/01/22 PHP
PHP 使用 Imagick 裁切/生成缩略图/添加水印自动检测和处理 GIF
2016/02/19 PHP
PHP二维数组实现去除重复项的方法【保留各个键值】
2017/12/21 PHP
高性能Javascript笔记 数据的存储与访问性能优化
2012/08/02 Javascript
通过length属性判断jquery对象是否存在
2013/10/18 Javascript
node.js中的querystring.stringify方法使用说明
2014/12/10 Javascript
Javascript实现单张图片浏览
2014/12/18 Javascript
js实现按钮控制图片360度翻转特效的方法
2015/02/17 Javascript
nodejs创建web服务器之hello world程序
2015/08/20 NodeJs
详解nodejs 文本操作模块-fs模块(五)
2016/12/23 NodeJs
JS SetInterval 代码实现页面轮询
2017/08/11 Javascript
nodejs判断文件、文件夹是否存在及删除的方法
2017/11/10 NodeJs
基于jquery实现五星好评
2017/11/18 jQuery
JavaScript基础心法 数据类型
2018/03/05 Javascript
解决angular2在双向数据绑定时[(ngModel)]无法使用的问题
2018/09/13 Javascript
关于vue编译版本引入的问题的解决
2018/09/17 Javascript
VUE实现自身整体组件销毁的示例代码
2020/01/13 Javascript
[01:33]DOTA2上海特级锦标赛 LIQUID战队完整宣传片
2016/03/16 DOTA
[02:49]DAC2018决赛日TOP5 LGD开启黑暗之门绝杀VP
2018/04/08 DOTA
python实现对一个完整url进行分割的方法
2015/04/29 Python
Python2.x版本中maketrans()方法的使用介绍
2015/05/19 Python
利用python程序帮大家清理windows垃圾
2017/01/15 Python
python批量添加zabbix Screens的两个脚本分享
2017/01/16 Python
Python 循环语句之 while,for语句详解
2018/04/23 Python
Python socket模块ftp传输文件过程解析
2019/11/05 Python
浅谈OpenCV中的新函数connectedComponentsWithStats用法
2020/07/05 Python
全球速卖通俄罗斯站:AliExpress俄罗斯
2019/06/17 全球购物
毕业学生推荐信
2013/12/01 职场文书
商超业务员岗位职责
2014/03/12 职场文书
教师竞聘演讲稿
2014/05/16 职场文书
诉讼授权委托书
2014/10/15 职场文书
Python数据清洗工具之Numpy的基本操作
2021/04/22 Python
MySQL8.0.24版本Release Note的一些改进点
2021/04/22 MySQL