首页 > 其他分享 >calc()语法规则

calc()语法规则

时间:2023-02-25 13:32:05浏览次数:37  
标签:-- 10px 语法 width 规则 foot calc margin


1、calc()中的参数是一个计算公式

这个计算公式把计算宽度和数值的任务扔给不同尺寸下的浏览器,让页面能够自己得出宽度或数值的结论,这些计算公式也都是很简单的加( )减( - )乘( * )除( / )运算。

div{
width: calc(15px 15px);//30px
width: calc(15px - 10px);//5px
width: calc(15px*2);//30px
width: calc(15px/3);//5px
}
  • 加( )减( - )运算中需要计算的数值与运算符之间是有空格的
  • 可以使用百分比、px、em、rem等单位进行计算的,并且单位可以混在一起计算:
div{
width: calc(3em 5px);//53px
}

支持"+", “-”, “*”, "/"四则运算,又有区别

//(+、-)要求这两个数都是长度
.foot {
/* 有效 */
margin: calc(100px + 100px);

/* 无效 */
margin: calc(10px + 5);
}
//除法(/)要求第二个数字是无单位的
.foot {
/* 有效的? */
margin: calc(30px / 3);

/* 无效的? */
margin: calc(30px / 10px);

/* 无效的? (不能除以0) */
margin: calc(30px / 0);
}
//乘法(*)要求其中一个数是无单位的。
.foot {
/* 有效的 ? */
margin: calc(10px * 3);

/* 有效的 ? */
margin: calc(3 * 10px);

/* 无效的 ? */
margin: calc(30px * 3px);
}
//加法和减法要加前后空格
//负数是可以的(例如 calc(5vw - -5px) ),但这是一个例子,说明空格不仅是必需的,而且是有用的
.foot {
/* 有效的 ? */
font-size: calc(3vw + 2px);

/* 无效的 ? */
font-size: calc(3vw+2px);

/* 有效的 ? */
font-size: calc(3vw - 2px);

/* 无效的 ? */
font-size: calc(3vw-2px);
}
//calc() 与开头括号之间没有空格。
.foot {
/* 无效的 ? */
width: calc (100% / 3);
}

CSS有很多长度,它们都可以与calc() 一起使用:

px % em rem in mm cm pt pc ex ch vh vw vmin vmax

二、calc()嵌套

calc()是一个函数,那么函数是可以支持嵌套的,可以通过不同的公式来算出最后的结果。

div{
--widthA: calc(10px 190px);
--widthB: calc(var(--widthA) / 2);
--widthC: calc(var(--widthB) / 2);
width: var(--widthC);//50px
}
.foot {
width: calc( 100% / calc(100px * 2) );
}

三、不能在媒体查询中使用

@media (max-width: 40rem) {
/* Narrower or exactly 40rem */
}

/* 无效 */
@media (min-width: calc(40rem + 1px)) {
/* Wider than 40rem */
}

四、支持大多数浏览器,对于不支持的可以写后补;

.foo {
width: 90%; /* 浏览器不支持是启用*/
width: calc(100% - 50px);
}

五、元素垂直居中(已知元素尺寸)

// foot的元素宽高均为300px
.foot {
position: absolute
top: 50%;
left: 50%;
marging-top: -150px;
margin-left: -150px;
}
//calc()写法
.foot {
position: absolute
top: calc(50% - 150px);
left: calc(50% - 150px);
}

六、渐变色

.foot {
background: #1E88E5 linear-gradient(
to bottom,
#1E88E5,
#1E88E5 calc(50% - 10px),
#3949AB calc(50% + 10px),
#3949AB
);
}

七、CSS自定义属性和calc()

html {
--spacing: 10px;
--spacing-L: var(--spacing) * 2;
--spacing-XL: var(--spacing) * 3;
}

.module[data-spacing="XL"] {
padding: calc(var(--spacing-XL));
}

<div style="--index: 1;"> ... </div>
<div style="--index: 2;"> ... </div>
<div style="--index: 3;"> ... </div>
div {
/* Index value comes from the HTML (with a fallback) */
animation-delay: calc(var(--index, 1) * 0.2s);
}

八、清晰可读

//更加清晰可读
.foot {
width: 16.666666667%;
}
.foot {
width: calc(100% / 6);
}

九、创建根栅格尺寸( 1rem 宽度的元素总是视口元素宽度的 1/30)

html {  
font-size: calc(100vw / 30);
}

十、与预处理器数学比较

.foot {
width: calc(10px + 50px);
}
//组合不同单元; .foot元素总是小于它父元素宽度 50px;
//使用 calc(),计算值是表达式它自己,而非表达式的结果
.foot {
width: calc(100% - 50px);
}

// SCSS 等同于 width: 150px;
//当使用 CSS 预处理器做数学运算时,给定值为表达式的结果。
.foot {
width: 100px + 50px;
}


标签:--,10px,语法,width,规则,foot,calc,margin
From: https://blog.51cto.com/u_15105778/6085365

相关文章

  • 用规则来搭建团队:写周报不一定是坏事
    你好,我是Smile,一位有二十年工作经验的技术专家。今天我会结合我的经历,和你聊聊搭建技术团队这个话题。众所周知,技术团队很大程度上决定了一个公司业务的生命力和生命周期,因......
  • SQL高级语法使用
     1.SQL查询重复的字段数量,并根据重复数量进行排序;应用场景CollisionTaskIndex表格如上图所示,sourcePic,中sourcePic是有多个,有重复的;要求按照sourcePic分组,然后统计每......
  • 99语法:外连接查询
    ​  --innerjoin-on子句:显示的是所有匹配的信息select*fromempeinnerjoindeptdone.deptno=d.deptno;select*fromemp;select*fromdept;--......
  • 99语法:外连接查询
    ​  --innerjoin-on子句:显示的是所有匹配的信息select*fromempeinnerjoindeptdone.deptno=d.deptno;select*fromemp;select*fromdept;--......
  • 99语法:交叉连接,自然连接,内连接查询
    ​ 【1】多表查询引入:实际开发中往往需要针对两张甚至更多张数据表进行操作,而这多张表之间需要使用主键和外键关联在一起,然后使用连接查询来查询多张表中满足要求的数据......
  • 99语法:交叉连接,自然连接,内连接查询
    ​ 【1】多表查询引入:实际开发中往往需要针对两张甚至更多张数据表进行操作,而这多张表之间需要使用主键和外键关联在一起,然后使用连接查询来查询多张表中满足要求的数据......
  • JavaScript语法快速学习
    资料来源于:B站尚硅谷JavaWeb教程(全新技术栈,全程实战),本人才疏学浅,记录其笔记以供他日回顾视频链接知识点<!--Javascript:客户端的一个脚本语言js是一门弱类型......
  • 阿里云中配置安全组规则,添加端口号(windows server)
           ......
  • MyBatis支持多种数据库连接(多种sql语法支持)
    1、说明这里说的多种数据库连接,是指同时支持多种Sql语法,可做到不同类型数据库使用同一套后台代码而不用改动,不是多数据源。这里有一种简单的方式可以实现,就是使用MyBatis的d......
  • JSON_概念与JSON_语法_定义
    JSON_概念1.概念:JavaScriptObjectNotationJavaScript对象表示法Personp=newPerson();p.setName("张三"); p.setA......