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 object-fit属性
Jul 27 HTML / CSS
CSS3正方体旋转示例代码
Aug 08 HTML / CSS
CSS3文本换行word-wrap解决英文文本超过固定宽度不换行
Oct 10 HTML / CSS
CSS3 实现飘动的云朵动画
Dec 01 HTML / CSS
HTML5新控件之日期和时间选择输入的实现代码
Sep 13 HTML / CSS
HTML5新增的表单元素和属性实例解析
Jul 07 HTML / CSS
html5中 media(播放器)的api使用指南
Dec 26 HTML / CSS
Html5 Geolocation获取地理位置信息实例
Dec 09 HTML / CSS
phonegap常用事件总结(必看篇)
Mar 31 HTML / CSS
canvas 橡皮筋式线条绘图应用方法
Feb 13 HTML / CSS
HTML5 Blob 实现文件下载功能的示例代码
Nov 29 HTML / CSS
html5手机键盘弹出收起的处理
Jan 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
YB217、YB235、YB400浅听
2021/03/02 无线电
PHP超级全局变量数组小结
2012/10/04 PHP
php判断正常访问和外部访问的示例
2014/02/10 PHP
php微信支付之APP支付方法
2015/03/04 PHP
64位windows系统下安装Memcache缓存
2015/12/06 PHP
php结合web uploader插件实现分片上传文件
2016/05/10 PHP
jQuery的实现原理的模拟代码 -2 数据部分
2010/08/01 Javascript
javascript动态改变img的src属性图片不显示的解决方法
2010/10/20 Javascript
前台js改变Session的值(用ajax实现)
2012/12/28 Javascript
js格式化货币数据实现代码
2013/09/04 Javascript
JavaScript中的pow()方法使用详解
2015/06/15 Javascript
jQuery插件echarts实现的去掉X轴、Y轴和网格线效果示例【附demo源码下载】
2017/03/04 Javascript
JavaScript实现简单的文本逐字打印效果示例
2018/04/12 Javascript
JSON数据中存在单个转义字符“\”的处理方法
2018/07/11 Javascript
AngularJs的UI组件ui-Bootstrap之Tooltip和Popover
2018/07/13 Javascript
微信打开网址添加在浏览器中打开提示的办法
2019/05/20 Javascript
Vue extend的基本用法(实例详解)
2019/12/09 Javascript
浅谈JavaScript中你可能不知道URL构造函数的属性
2020/07/13 Javascript
Python中用Descriptor实现类级属性(Property)详解
2014/09/18 Python
Python3导入自定义模块的三种方法详解
2018/04/13 Python
python在回调函数中获取返回值的方法
2019/02/22 Python
python manage.py runserver流程解析
2019/11/08 Python
浅谈python累加求和+奇偶数求和_break_continue
2020/02/25 Python
python如何将两张图片生成为全景图片
2020/03/05 Python
如何通过Python3和ssl实现加密通信功能
2020/05/09 Python
python list等分并从等分的子集中随机选取一个数
2020/11/16 Python
python3 使用ssh隧道连接mysql的操作
2020/12/05 Python
CSS3使用多列制作瀑布流
2016/05/10 HTML / CSS
汇集了世界上最好的天然和有机美容产品:LoveLula
2018/02/05 全球购物
信息专业本科生个人的自我评价
2013/10/28 职场文书
致800米运动员广播稿
2014/02/16 职场文书
南湾猴岛导游词
2015/02/09 职场文书
复兴之路展览观后感
2015/06/02 职场文书
Python网络编程之ZeroMQ知识总结
2021/04/25 Python
浅谈JS的原型和原型链
2021/06/04 Javascript
Redis集群节点通信过程/原理流程分析
2022/03/18 Redis