CSS计算函数--calc()函数的定义和使用
calc()函数允许CSS在声明属性值时进行一些计算,支持加减乘除运算(支持嵌套运算)。一般用于长度、角度、时间、百分比、频率、数值等运算。
一、calc()函数的语法
property: calc(expression)
如:
width: calc(100% - 100px);
常见的一种应用场景为会员登录注册页面的前端切图,如,头部Header和底部版权Footer部分的高度确定,页面中部为登录框,一般我们需要将版权放置在页面的底部,如果使用Position定位的话,则过于绝对,当页面被拖放的过小时,则会出现底部版权信息覆盖登录注册表单框的情况。
所以,使用calc()函数可以很好的解决这一需求,具体代码如下:
HTML代码:
<div id="header">顶部标题、LOGO区域</div>
<div id="content">
<form>
<p>表单框,最小高度为600px;</p>
</form>
</div>
<div id="footer">
<p>Copyright © <a href="https://www.qietujiang.com">切图匠</a></p>
</div>
CSS代码:
html,body{ height: 100%;}
#header, #content, #footer{ width: 100%; float: left; text-align: center;}
#header{ height: 100px; line-height: 100px; background: #35393c; color: #fff;}
#content{
height: calc(100% - 150px); min-height: 600px; background: lightskyblue;
position: relative;
}
form{
width: 600px; height: 600px; background: red; position: absolute; left: 50%; margin-left: -300px;
top: calc((100% - 600px)/2);
}
#footer{ height: 50px; line-height: 50px; background: #35393c; color: #fff;}
这样,在视窗高度大于 100+600+50 = 750px的时候,版权信息总是在最底部,表单框也始终居于#content区域的正中心。而当视窗高度小于750px的时候,则页面会自动出现滚动条,很好的保护了表单框不会被版权信息遮盖。
这里有一个要注意的常识性问题:在使用calc()函数定义高度,且其中存在百分比参数时,必须设置html,body{ height: 100%;},当然你可以在定义#content的高度时使用 height: calc(100vh - 150px); 即使用100vh代替100%的写法。
为了提升用户体验,我们还可以给form表单框增加外边距等更多设置。
二、calc()函数使用注意点:
1、加减运算符两边需留空格、乘除运算的运算符两边不需要,但是为了统一,一般都建议在运算符两边加空格;
2、calc()函数支持多层嵌套;
3、支持与其他CSS函数嵌套使用,如var()函数;
4、有些前端同学反馈calc的单词不是很好记忆,这个其实calc是计算的单词calculator的缩写,在window系统中,可以在命令窗口直接输入calc直接打开计算器。
- - - - - - - - -
更多CSS函数的介绍和使用,请移步查看:《CSS函数使用详解》
- CSS颜色函数--rgb()、rgba()的语法和使用
rgb()函数和rgba()函数是前端切图工作当中经常用到的颜色函数,根据光学三原色红(red)、绿(green)、蓝(blue)三种颜色的不同分量进行混合后来
- CSS最大值计算函数--max()函数的定义和使用
max()函数的作用是从一系列用逗号分割的参数中选取最大的一个,作为属性值,参数可以是直接数值,字面量、数学表达式、css函数等,支持嵌套。与min()函数的作
- 后台发布文章时自动保存草稿功能的实现
“正在系统后台编辑文章,顺手看了下群里的视频,关视频的时候不小心连网页一起关闭了,写了大半的文章说没就没了?”,相信很多人都遇到过这种场景,辛辛苦苦码了半天的字
- CSS获取属性值函数--attr()函数的定义和使用
attr()函数为CSS返回元素属性值函数一、attr()函数的语法:该函数接收一个单一参数:attribute-name,即属性名,attr()函数返回被选择
- 富文本编辑器CKEditor5接入指南
在后端制作CMS等需要用到富文本编辑器的时候,经常会陷入选择困难症,众所周知,目前市面上的富文本编辑器大概有数十种,比如百度的ueditor、TinyMCE、w
- WebStorm中如何配置SCSS
WebStorm是一款很优秀的用于前端开发的IDE,用于开发基于HTML、CSS、JS等的应用时非常应手,当然JetBrains旗下的其他IDE,如PHPSto
- CSS颜色函数--rgb()、rgba()的语法和使用
rgb()函数和rgba()函数是前端切图工作当中经常用到的颜色函数,根据光学三原色红(red)、绿(green)、蓝(blue)三种颜色的不同分量进行混合后来
- CSS限定属性值函数--clamp()函数的语法和使用
clamp()的作用是将属性值限制在最大、最小值之间,当值介于最大最小值范围中时,则使用给定的首选值。一、clamp()函数的语法clamp(MIN, VAL,