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 透明色 RGBA使用介绍
Aug 06 HTML / CSS
纯CSS绘制漂亮的圆形图案效果
May 07 HTML / CSS
Css3新特性应用之视觉效果实例
Dec 12 HTML / CSS
html5 touch事件实现触屏页面上下滑动(二)
Mar 10 HTML / CSS
canvas需要在标签里直接定义宽高
Dec 17 HTML / CSS
用HTML5制作数字时钟的教程
May 11 HTML / CSS
HTML5实现动画效果的方式汇总
Feb 29 HTML / CSS
在canvas上实现元素图片镜像翻转动画效果的方法
Mar 20 HTML / CSS
canvas环形倒计时组件的示例代码
Jun 14 HTML / CSS
Canvas获取视频第一帧缩略图的实现
Nov 11 HTML / CSS
使用CSS实现小三角边框原理解析
Nov 07 HTML / CSS
HTML中的表单元素介绍
Feb 28 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
用 Composer构建自己的 PHP 框架之构建路由
2014/10/30 PHP
PHP上传文件参考配置大文件上传
2015/12/16 PHP
隐藏Nginx或Apache以及PHP的版本号的方法
2016/01/03 PHP
tp5框架基于ajax实现异步删除图片的方法示例
2020/02/10 PHP
禁止F5等快捷键的JS代码
2007/03/06 Javascript
Save a File Using a File Save Dialog Box
2007/06/18 Javascript
基于jquery的无缝循环新闻列表插件
2011/03/07 Javascript
jquery异步跨域访问代码
2013/06/28 Javascript
JavaScript采用递归算法计算阶乘实例
2015/08/04 Javascript
前端jquery部分很精彩
2016/05/03 Javascript
JavaScript中的this陷阱的最全收集并整理(没有之一)
2017/02/21 Javascript
js前端日历控件(悬浮、拖拽、自由变形)
2017/03/02 Javascript
前端主流框架vue学习笔记第二篇
2017/07/26 Javascript
nodejs实现的简单web服务器功能示例
2018/03/15 NodeJs
关于在vue 中使用百度ueEditor编辑器的方法实例代码
2018/09/14 Javascript
Vue 框架之键盘事件、健值修饰符、双向数据绑定
2018/11/14 Javascript
基于layui框架响应式布局的一些使用详解
2019/09/16 Javascript
Vue 中获取当前时间并实时刷新的实现代码
2020/05/12 Javascript
React中使用Vditor自定义图片详解
2020/12/25 Javascript
[00:12]DAC2018 天才少年转战三号位,他的SOLO是否仍如昔日般强大?
2018/04/06 DOTA
pycharm打开命令行或Terminal的方法
2019/01/16 Python
windows下numpy下载与安装图文教程
2019/04/02 Python
Python用Try语句捕获异常的实例方法
2019/06/26 Python
在python中用url_for构造URL的方法
2019/07/25 Python
python matplotlib饼状图参数及用法解析
2019/11/04 Python
Pytorch之contiguous的用法
2019/12/31 Python
Django实现简单的分页功能
2021/02/22 Python
详解Html5 监听拦截Android返回键方法
2018/04/18 HTML / CSS
英国最大的滑板品牌选择:Route One
2019/09/22 全球购物
UML设计模式笔试题
2014/06/07 面试题
校长就职演讲稿
2014/01/06 职场文书
高中军训广播稿
2014/01/14 职场文书
三孔导游词
2015/02/05 职场文书
悬崖上的金鱼姬观后感
2015/06/15 职场文书
我在伊朗长大观后感
2015/06/16 职场文书
Java基础-封装和继承
2021/07/02 Java/Android