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简单练习实现遨游浏览器logo的绘制
Jan 30 HTML / CSS
css3动画事件—webkitAnimationEnd与计时器time事件
Jan 31 HTML / CSS
CSS3盒子模型详解
Apr 24 HTML / CSS
CSS3利用text-shadow属性实现多种效果的文字样式展现方法
Aug 25 HTML / CSS
CSS3实现歌词进度文字颜色填充变化动态效果的思路详解
Jun 02 HTML / CSS
html5 worker 实例(二) 图片变换效果
Jun 24 HTML / CSS
html5 迷宫游戏(碰撞检测)实例一
Jul 25 HTML / CSS
html5 利用canvas实现超级玛丽简单动画
Sep 06 HTML / CSS
完美解决IE8下不兼容rgba()的问题
Mar 31 HTML / CSS
HTML5 直播疯狂点赞动画实现代码 附源码
Apr 14 HTML / CSS
Html5让容器充满屏幕高度或自适应剩余高度的布局实现
May 14 HTML / CSS
html5实现点击弹出图片功能
Jul 16 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
《DOTA3》开发工作已经开始 《DOTA3》将代替《DOTA2》
2021/03/06 DOTA
laravel实现分页样式替换示例代码(增加首、尾页)
2017/09/22 PHP
字符串的replace方法应用浅析
2011/12/06 Javascript
js jquery数组介绍
2012/07/15 Javascript
jquery连缀语法如何实现
2012/11/29 Javascript
用js判断输入是否为中文的函数
2014/03/10 Javascript
jquery禁用右键示例
2014/04/28 Javascript
纯JavaScript实现的分页插件实例
2015/07/14 Javascript
angularjs自定义ng-model标签的属性
2016/01/21 Javascript
Sort()函数的多种用法
2016/03/20 Javascript
AngularJs页面筛选标签小功能
2016/08/01 Javascript
微信小程序开发之Tabbar实例详解
2017/01/09 Javascript
原生javascript上传图片带进度条【实例分享】
2017/04/06 Javascript
基于vue的短信验证码倒计时demo
2017/09/13 Javascript
vue-router重定向不刷新问题的解决
2018/06/25 Javascript
node.js中ws模块创建服务端和客户端,网页WebSocket客户端
2019/03/06 Javascript
前端插件之Bootstrap Dual Listbox使用教程
2019/07/23 Javascript
Vue 同步异步存值取值实现案例
2020/08/05 Javascript
vue用ant design中table表格,点击某行时触发的事件操作
2020/10/28 Javascript
[01:12:40]DOTA2-DPC中国联赛 正赛 DLG vs XG BO3 第三场 1月25日
2021/03/11 DOTA
python开发之tkinter实现图形随鼠标移动的方法
2015/11/11 Python
使用DataFrame删除行和列的实例讲解
2018/04/08 Python
python实现字符串和字典的转换
2018/09/29 Python
python实现换位加密算法的示例
2018/10/14 Python
pygame游戏之旅 计算游戏中躲过的障碍数量
2018/11/20 Python
深入浅析Python中的迭代器
2019/06/04 Python
pyqt 实现QlineEdit 输入密码显示成圆点的方法
2019/06/24 Python
简单了解Pandas缺失值处理方法
2019/11/16 Python
英国排名第一的最新设计师品牌手表独立零售商:TIC Watches
2016/09/24 全球购物
怎么处理XML的中文问题
2015/03/26 面试题
2013年办公室秘书的个人自我鉴定
2013/10/24 职场文书
餐厅筹备计划书
2014/04/25 职场文书
校本教研活动总结
2014/07/01 职场文书
大学生推广普通话演讲稿
2014/09/21 职场文书
Nebula Graph解决风控业务实践
2022/03/31 MySQL
默认网关不可用修复后过一会又不好使了解决方法
2022/04/08 数码科技