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 中display box使用方法
Nov 25 HTML / CSS
CSS3 text shadow字体阴影效果
Jan 08 HTML / CSS
CSS3近阶段篇之酷炫的3D旋转透视
Apr 28 HTML / CSS
CSS3制作彩色进度条样式的代码示例分享
Jun 23 HTML / CSS
CSS3,线性渐变(linear-gradient)的使用总结
Jan 09 HTML / CSS
css3实现圆锥渐变conic-gradient效果
Feb 12 HTML / CSS
HTML5 FormData 方法介绍以及实现文件上传示例
Sep 12 HTML / CSS
html5 web本地存储将取代我们的cookie
Dec 26 HTML / CSS
html5 Canvas画图教程(8)—canvas里画曲线之bezierCurveTo方法
Jan 09 HTML / CSS
HTML5声音录制/播放功能的实现代码
May 03 HTML / CSS
用canvas做一个DVD待机动画的实现代码
Apr 12 HTML / CSS
CSS使用Flex和Grid布局实现3D骰子
Aug 05 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
多人战的战术与战略
2020/03/04 星际争霸
PHP的关于变量和日期处理的一些面试题目整理
2015/08/10 PHP
PHP实现上一篇下一篇的方法实例总结
2016/09/22 PHP
thinkPHP模板中函数的使用方法示例
2016/11/30 PHP
phpstudy的php版本自由修改的方法
2017/10/18 PHP
PHP内部实现打乱字符串顺序函数str_shuffle的方法
2019/02/14 PHP
JQUERY 对象与DOM对象之两者相互间的转换
2009/04/27 Javascript
在IE和VB中支持png图片透明效果的实现方法(vb源码打包)
2011/04/01 Javascript
JavaScript中两个感叹号的作用说明
2011/12/28 Javascript
解决Jquery鼠标经过不停滑动的问题
2014/03/03 Javascript
基于javascript实现图片懒加载
2016/01/05 Javascript
两种方法解决javascript url post 特殊字符转义 + & #
2016/04/13 Javascript
Bootstrap框架下下拉框select搜索功能
2020/03/26 Javascript
js事件驱动机制 浏览器兼容处理方法
2016/07/23 Javascript
javascript 内置对象及常见API详细介绍
2016/11/01 Javascript
详解javascript获取url信息的常见方法
2016/12/19 Javascript
微信小程序 常见问题总结(4058,40013)及解决办法
2017/01/11 Javascript
微信小程序 缓存(本地缓存、异步缓存、同步缓存)详解
2017/01/17 Javascript
bootstrap IE8 兼容性处理
2017/03/22 Javascript
Node.js 异步异常的处理与domain模块解析
2017/05/10 Javascript
vue2 router 动态传参,多个参数的实例
2017/11/10 Javascript
Webpack框架核心概念(知识点整理)
2017/12/22 Javascript
关于layui表单中按钮自动提交的解决方法
2019/09/09 Javascript
python中使用urllib2伪造HTTP报头的2个方法
2014/07/07 Python
python+rsync精确同步指定格式文件
2019/08/29 Python
matplotlib.pyplot画图并导出保存的实例
2019/12/07 Python
python数据类型强制转换实例详解
2020/06/22 Python
利用python汇总统计多张Excel
2020/09/22 Python
CSS3解决移动页面上点击链接触发色块的问题
2016/06/03 HTML / CSS
数控专业大学毕业生职业规划范文
2014/02/06 职场文书
优秀辅导员事迹材料
2014/02/16 职场文书
请假条格式范文
2014/04/10 职场文书
班级学雷锋活动总结
2014/06/26 职场文书
2014年导购员工作总结
2014/11/18 职场文书
2014年学校后勤工作总结
2014/12/06 职场文书
母亲节主题班会
2015/08/14 职场文书