加入收藏 | 设为首页 | 会员中心 | 我要投稿 聊城站长网 (https://www.0635zz.com/)- 智能语音交互、行业智能、AI应用、云计算、5G!
当前位置: 首页 > 综合聚焦 > 编程要点 > 语言 > 正文

CSS的calc函数用法是什么,怎样应用实现布局?

发布时间:2023-07-01 12:33:48 所属栏目:语言 来源:
导读:  这篇文章主要讲解了“CSS的calc函数用法是什么,如何应用实现布局?”,文中的讲解内容简单、清晰、详细,对大家学习或是工作可能会有一定的帮助,希望大家阅读完这篇文章能有所收获。下面就请大家跟着
  这篇文章主要讲解了“CSS的calc函数用法是什么,如何应用实现布局?”,文中的讲解内容简单、清晰、详细,对大家学习或是工作可能会有一定的帮助,希望大家阅读完这篇文章能有所收获。下面就请大家跟着小编的思路一起来学习一下吧。
 
   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;
 
  }
 
 

(编辑:聊城站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!