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结构性伪类选择器九种写法
Apr 18 HTML / CSS
CSS3实现银灰色动画效果的导航菜单代码
Sep 01 HTML / CSS
浅谈css3中的前缀
Jul 20 HTML / CSS
CSS3使用transition属性实现过渡效果
Apr 18 HTML / CSS
关于css中margin的值和垂直外边距重叠问题
Oct 27 HTML / CSS
html5+css3之制作header实例与更新
Dec 21 HTML / CSS
HTML5 和小程序实现拍照图片旋转、压缩和上传功能
Oct 08 HTML / CSS
html5构建触屏网站之touch事件介绍
Jan 07 HTML / CSS
HTML5新特性之用SVG绘制微信logo
Feb 03 HTML / CSS
Canvas实现贝赛尔曲线轨迹动画的示例代码
Apr 25 HTML / CSS
html5跳转小程序wx-open-launch-weapp踩坑
Dec 02 HTML / CSS
CSS3点击按钮圆形进度打钩效果的实现代码
Mar 30 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
Zerg基本策略
2020/03/14 星际争霸
mac下使用brew配置环境的步骤分享
2011/05/23 PHP
用穿越火线快速入门php面向对象
2012/02/22 PHP
PHP实现文件下载详解
2014/11/27 PHP
使用PHPExcel导出Excel表
2018/09/08 PHP
php中关于换行的实例写法
2019/09/26 PHP
在Laravel中使用GuzzleHttp调用第三方服务的API接口代码
2019/10/15 PHP
理解Javascript_09_Function与Object
2010/10/16 Javascript
基于jquery的滑动样例代码
2010/11/20 Javascript
IE8的JavaScript点击事件(onclick)不兼容的解决方法
2013/11/22 Javascript
javascript避免数字计算精度误差的方法详解
2014/03/05 Javascript
javascript教程:关于if简写语句优化的方法
2014/05/17 Javascript
利用jquery操作Radio方法小结
2014/10/20 Javascript
javascript编写实用的省市选择器
2015/02/12 Javascript
javascript设置和获取cookie的方法实例详解
2016/01/05 Javascript
JavaScript实现的SHA-1加密算法完整实例
2016/02/02 Javascript
javascript Promise简单学习使用方法小结
2016/05/17 Javascript
酷! 不同风格页面布局幻灯片特效js实现
2021/02/19 Javascript
关于javascript的一些知识以及循环详解
2016/09/12 Javascript
js实现文字无缝向上滚动
2017/02/16 Javascript
angularJs 表格添加删除修改查询方法
2018/02/27 Javascript
关于js对textarea换行符的处理方法浅析
2018/08/03 Javascript
微信小程序ibeacon三点定位详解
2018/10/31 Javascript
Python程序语言快速上手教程
2012/07/18 Python
Python中的pass语句使用方法讲解
2015/05/14 Python
Python极简代码实现杨辉三角示例代码
2016/11/15 Python
利用python程序生成word和PDF文档的方法
2017/02/14 Python
Django框架静态文件使用/中间件/禁用ip功能实例详解
2019/07/22 Python
python并发编程多进程 模拟抢票实现过程
2019/08/20 Python
Python PIL图片添加字体的例子
2019/08/22 Python
pycharm实现print输出保存到txt文件
2020/06/01 Python
Alpine安装Python3依赖出现的问题及解决方法
2020/12/25 Python
HTML5 Canvas鼠标与键盘事件demo示例
2013/07/04 HTML / CSS
如何删除一个表里面的重复行
2013/07/13 面试题
国际商务专业求职信
2014/07/15 职场文书
golang gopm get -g -v 无法获取第三方库的解决方案
2021/05/05 Golang