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实现文字向右循环闪过效果实例(可用于移动端)
Jun 15 HTML / CSS
纯CSS3实现自定义Tooltip边框涂鸦风格的教程
Nov 05 HTML / CSS
CSS3实现全景图特效示例代码
Mar 26 HTML / CSS
css3实现书本翻页效果的示例代码
Mar 08 HTML / CSS
Canvas 文本转粒子效果的实现代码
Feb 14 HTML / CSS
html特殊符号示例 html特殊字符编码对照表
Jan 14 HTML / CSS
HTML5本地存储和本地数据库实例详解
Sep 05 HTML / CSS
canvas因为图片资源不在同一域名下而导致的跨域污染画布的解决办法
Jan 18 HTML / CSS
html5视频媒体标签video的使用方法及完整参数说明详解
Sep 27 HTML / CSS
元素水平垂直居中的方式
Mar 31 HTML / CSS
CSS3中Animation实现简单的手指点击动画的示例
Jul 15 HTML / CSS
从QQtabBar看css命名规范BEM的详细介绍
Aug 07 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 星际争霸
Dedecms V3.1 生成HTML速度的优化办法
2007/03/18 PHP
php代码收集表单内容并写入文件的代码
2012/01/29 PHP
php依赖注入知识点详解
2019/09/23 PHP
php弹出提示框的是实例写法
2019/09/26 PHP
PHP 构造函数和析构函数原理与用法分析
2020/04/21 PHP
JAVASCRIPT  THIS详解 面向对象
2009/03/25 Javascript
JS 动态加载脚本的4种方法
2009/05/05 Javascript
jquery 可排列的表实现代码
2009/11/13 Javascript
Raphael带文本标签可拖动的图形实现代码
2013/02/20 Javascript
获取下拉列表框的值是数组,split,$.inArray示例
2013/11/13 Javascript
动态载入js提高网页打开速度的方法
2014/07/04 Javascript
jQuery使用drag效果实现自由拖拽div
2015/06/11 Javascript
js实现类似菜单风格的TAB选项卡效果代码
2015/08/28 Javascript
JavaScript实现简单Tip提示框效果
2016/04/20 Javascript
详解JavaScript RegExp对象
2017/02/04 Javascript
jQuery插件HighCharts实现气泡图效果示例【附demo源码】
2017/03/13 Javascript
jQuery plugin animsition使用小结
2017/09/14 jQuery
jQuery阻止事件冒泡实例分析
2018/07/03 jQuery
vue+iview动态渲染表格详解
2019/03/19 Javascript
js实现消灭星星(web简易版)
2020/03/24 Javascript
[01:05:30]VP vs TNC 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
python实现划词翻译
2020/04/23 Python
python微信跳一跳游戏辅助代码解析
2018/01/29 Python
pycharm恢复默认设置或者是替换pycharm的解释器实例
2018/10/29 Python
对Python w和w+权限的区别详解
2019/01/23 Python
梅尔倒谱系数(MFCC)实现
2019/06/19 Python
python计算二维矩形IOU实例
2020/01/18 Python
浅析python表达式4+0.5值的数据类型
2020/02/26 Python
Wolford法国官网:奥地利奢侈内衣品牌
2020/08/11 全球购物
工程造价与管理专业应届生求职信
2013/11/23 职场文书
后勤部经理岗位职责
2014/02/23 职场文书
2014年司法所工作总结
2014/11/22 职场文书
八达岭长城导游词
2015/01/30 职场文书
2015年房地产销售工作总结
2015/04/20 职场文书
Nginx实现高可用集群构建(Keepalived+Haproxy+Nginx)
2021/05/27 Servers