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学习之2D转换功能详解
Dec 23 HTML / CSS
利用CSS3的transform做的动态时钟效果
Sep 21 HTML / CSS
使用css3实现的tab选项卡代码分享
Dec 09 HTML / CSS
Css3新特性应用之视觉效果实例
Dec 12 HTML / CSS
CSS3 input框的实现代码类似Google登录的动画效果
Aug 04 HTML / CSS
HTML5实现QQ聊天气泡效果
Jun 26 HTML / CSS
HTML5+CSS3实现无插件拖拽上传图片(支持预览与批量)
Jan 05 HTML / CSS
HTML5的结构和语义(1):前言
Oct 17 HTML / CSS
HTML5实现一个能够移动的小坦克示例代码
Sep 02 HTML / CSS
基于canvas使用贝塞尔曲线平滑拟合折线段的方法
Jan 10 HTML / CSS
利用Node实现HTML5离线存储的方法
Oct 16 HTML / CSS
web前端之css水平居中代码解析
May 20 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/10/09 PHP
PHP备份/还原MySQL数据库的代码
2011/01/06 PHP
PHP session文件独占锁引起阻塞问题解决方法
2015/05/12 PHP
一页面多XMLHttpRequest对象
2007/01/22 Javascript
网页javascript精华代码集
2007/01/24 Javascript
jQuery操作input type=radio的实现代码
2012/06/14 Javascript
JavaScript中eval函数的问题
2016/01/31 Javascript
js实现获取两个日期之间所有日期的方法
2016/06/17 Javascript
Vue中建立全局引用或者全局命令的方法
2017/08/21 Javascript
详解angular脏检查原理及伪代码实现
2018/06/08 Javascript
微信小程序MUI导航栏透明渐变功能示例(通过改变rgba的a值实现)
2019/01/24 Javascript
JS html事件冒泡和事件捕获操作示例
2019/05/01 Javascript
vue-cli3 配置开发与测试环境详解
2019/05/17 Javascript
vue中使用mxgraph的方法实例代码详解
2019/05/17 Javascript
Bootstrap实现前端登录页面带验证码功能完整示例
2020/03/26 Javascript
[56:00]2018DOTA2亚洲邀请赛 4.6 淘汰赛 VP vs TNC 第二场
2018/04/10 DOTA
Python字符串处理之count()方法的使用
2015/05/18 Python
Python中字典的基本知识初步介绍
2015/05/21 Python
python去除文件中空格、Tab及回车的方法
2016/04/12 Python
在Python程序员面试中被问的最多的10道题
2017/12/05 Python
tensorflow TFRecords文件的生成和读取的方法
2018/02/06 Python
python3库numpy数组属性的查看方法
2018/04/17 Python
python对list中的每个元素进行某种操作的方法
2018/06/29 Python
一款纯css3实现的非常实用的鼠标悬停特效演示
2014/11/05 HTML / CSS
英国皇家邮政海外旗舰店:Royal Mail
2018/02/21 全球购物
金融专业毕业生推荐信
2013/11/26 职场文书
单位单身证明范本
2014/01/11 职场文书
大学生通用个人的自我评价
2014/02/10 职场文书
人民教师的自我评价分享
2014/02/21 职场文书
上课迟到检讨书300字
2014/10/15 职场文书
2015年安全教育月活动总结
2015/03/26 职场文书
就业推荐表院系意见
2015/06/05 职场文书
导游词之澳门妈祖庙
2019/12/19 职场文书
MySQL数据库压缩版本安装与配置详细教程
2021/05/21 MySQL
整理Python中常用的conda命令操作
2021/06/15 Python
深入浅出讲解Java8函数式编程
2022/01/18 Java/Android