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自定义滚动条样式写法
Dec 25 HTML / CSS
Web页面中八种创建多列等高(等高列布局)的实现技术
Dec 24 HTML / CSS
HTML5 Canvas实现文本对齐的方法总结
Mar 24 HTML / CSS
基于HTML5 Canvas 实现弹出框效果
Jun 05 HTML / CSS
HTML5 device access 设备访问详解
May 24 HTML / CSS
canvas学习笔记之绘制简单路径
Jan 28 HTML / CSS
html5 application cache遇到的严重问题
Dec 26 HTML / CSS
HTML5 Canvas如何实现纹理填充与描边(Fill And Stroke)
Jul 15 HTML / CSS
详解html5 shiv.js和respond.min.js
Jan 24 HTML / CSS
htnl5利用svg页面高斯模糊的方法
Jul 20 HTML / CSS
Html5页面二次分享的实现
Jul 30 HTML / CSS
AmazeUI 模态窗口的实现代码
Aug 18 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利用curl抓取新浪微博内容示例
2014/04/27 PHP
php基于base64解码图片与加密图片还原实例
2014/11/03 PHP
PHP设计模式之工厂方法设计模式实例分析
2018/04/25 PHP
YII框架页面缓存操作示例
2019/04/29 PHP
从父页面读取和操作iframe中内容方法
2009/07/25 Javascript
JQuery 将元素显示在屏幕的中央的代码
2010/02/27 Javascript
查找Oracle高消耗语句的方法
2014/03/22 Javascript
Javascript动画的实现原理浅析
2015/03/02 Javascript
jQuery 遍历函数详解
2015/07/05 Javascript
jQuery替换节点用法示例(使用replaceWith方法)
2016/09/08 Javascript
Vue.js学习之过滤器详解
2017/01/22 Javascript
js获取ip和地区
2017/03/10 Javascript
Vue.js鼠标悬浮更换图片功能
2017/05/17 Javascript
微信小程序 选项卡的简单实例
2017/05/24 Javascript
在vue.js中抽出公共代码的方法示例
2017/06/08 Javascript
微信小程序左滑删除实现代码实例
2019/09/16 Javascript
Vue Render函数创建DOM节点代码实例
2020/07/08 Javascript
vue项目中播放rtmp视频文件流的方法
2020/09/17 Javascript
python ip正则式
2009/05/07 Python
python实现超简单的视频对象提取功能
2018/06/04 Python
浅谈关于Python3中venv虚拟环境
2018/08/01 Python
pyqt5 实现工具栏文字图片同时显示
2019/06/13 Python
用python求一重积分和二重积分的例子
2019/12/06 Python
美国乡村商店:Plow & Hearth
2016/09/12 全球购物
土木工程毕业生自荐信
2013/11/12 职场文书
上课迟到检讨书
2014/01/19 职场文书
无故旷工检讨书
2014/01/26 职场文书
元旦红领巾广播稿
2014/02/19 职场文书
《夜晚的实验》教学反思
2014/02/19 职场文书
机关党员2014全国两会学习心得体会
2014/03/10 职场文书
眼镜促销方案
2014/03/15 职场文书
2015年高校就业工作总结
2015/05/04 职场文书
建筑工程催款函
2015/06/24 职场文书
《狼牙山五壮士》教学反思
2016/02/17 职场文书
2019入党申请书范文3篇
2019/08/21 职场文书
redis protocol通信协议及使用详解
2022/07/15 Redis