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 相关文章推荐
纯HTML+CSS3制作导航菜单(附源码)
Apr 24 HTML / CSS
css3+jq创作含苞待放的荷花
Feb 20 HTML / CSS
用纯css3实现的图片放大镜特效效果非常不错
Sep 02 HTML / CSS
纯CSS3打造属于自己的“小黄人”
Mar 14 HTML / CSS
使用css3做0.5px的细线的示例代码
Jan 18 HTML / CSS
详解CSS3媒体查询响应式布局bootstrap 框架原理实战(推荐)
Nov 16 HTML / CSS
CSS3 filter(滤镜)实现网页灰色或者黑色模式的代码
Nov 30 HTML / CSS
HTML5中Canvas与SVG的画图原理比较
Jan 16 HTML / CSS
HTML5计时器小例子
Oct 15 HTML / CSS
Html5 Canvas动画基础碰撞检测的实现
Dec 06 HTML / CSS
html5录音功能实战示例
Mar 25 HTML / CSS
html form表单基础入门案例讲解
Jul 21 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中通过smtp发邮件的类,测试通过
2007/01/22 PHP
php中call_user_func函数使用注意事项
2014/11/21 PHP
php实现图片上传、剪切功能
2016/05/07 PHP
php基于ob_start(ob_gzhandler)实现网页压缩功能的方法
2017/02/18 PHP
深入解析Laravel5.5中的包自动发现Package Auto Discovery
2017/09/13 PHP
php记录搜索引擎爬行记录的实现代码
2018/03/02 PHP
Yii框架中使用PHPExcel的方法分析
2019/07/25 PHP
PHP pthreads v3下的Volatile简介与使用方法示例
2020/02/21 PHP
js中的escape及unescape函数的php实现代码
2007/09/04 Javascript
ASP小贴士/ASP Tips javascript tips可以当桌面
2009/12/10 Javascript
jQuery中的常用事件总结
2009/12/27 Javascript
JQuery 引发两次$(document.ready)事件
2010/01/15 Javascript
jquery插件实现鼠标经过图片右侧显示大图的效果(类似淘宝)
2013/02/04 Javascript
7款风格新颖的jQuery/CSS3菜单导航分享
2013/04/23 Javascript
jQuery操作CheckBox的方法介绍(选中,取消,取值)
2014/02/04 Javascript
ExtJS4 表格的嵌套 rowExpander应用
2014/05/02 Javascript
Jquery操作js数组及对象示例代码
2014/05/11 Javascript
jQuery中dequeue()方法用法实例
2014/12/29 Javascript
Iphone手机、安卓手机浏览器控制默认缩放大小的方法总结(附代码)
2017/08/18 Javascript
bootstrap中的导航条实例代码详解
2019/05/20 Javascript
nodejs一个简单的文件服务器的创建方法
2019/09/13 NodeJs
python 装饰器功能以及函数参数使用介绍
2012/01/27 Python
Django中日期处理注意事项与自定义时间格式转换详解
2018/08/06 Python
python+flask实现API的方法
2018/11/21 Python
python实现从ftp服务器下载文件
2020/03/03 Python
Python dict和defaultdict使用实例解析
2020/03/12 Python
python编写一个会算账的脚本的示例代码
2020/06/02 Python
如何基于Python按行合并两个txt
2020/11/03 Python
JustFab加拿大:女鞋、靴子、手袋和服装在线
2018/05/18 全球购物
乌克兰的第一家手表店:Deka
2020/03/05 全球购物
英国豪华家具和家居用品购物网站:Teddy Beau
2020/10/12 全球购物
初级软件工程师面试题 Junior Software Engineer Interview
2015/02/15 面试题
2014年教务处工作总结
2014/12/03 职场文书
简单的辞职信模板
2015/05/12 职场文书
2016年五一国际劳动节活动总结
2016/04/06 职场文书
MySQL 8.0 驱动与阿里druid版本兼容问题解决
2021/07/01 MySQL