「这是我参与2022首次更文挑战的第1天,活动详情查看:2022首次更文挑战」。
问题起因
今天再使用calc时发现无法生效,我的写法是:
width: calc(100%-100px);
页面无效果,加空格后就发现有效果了:
width: calc(100% - 100px);
有亿点疑惑,这是为什么?
calc是什么?优先级排序c语言
css3的 计算属性,用于动态计算长度值。calc语优先级最高的运算符法:
calc(expression)//expression是数学表达式
用法&定义优先级越小越优先吗
-
- 运算符前后都需要保留一个空格,仓鼠饲养八大禁忌例如:
width: calc(100% - 100px)
;优先级是什么意思 - 任何长度值都可以使用calc()函数进行计算;
- calc()函数支持 “+”, “-“, “*”, “/” 运算;
- calc()函优先级是什么意思数使用标准的数学运算优先级规则;
- 运算符前后都需要保留一个空格,仓鼠饲养八大禁忌例如:
先了解一下CSS中基础语法和优先级排序数据类型:
文档链接》》
在文档的这里从山神开始的诸天之旅应该是这里的核心语法:
stylesheet : [ CDO | CDC | S | statement ]*;
statement : ruleset | at-rule;
at-rule : ATKEYWORD S* any* [ block | ';' S* ];
block : '{' S* [ any | block | ATKEYWORD S* | ';' S* ]* '}' S*;
ruleset : selector? '{' S* declaration? [ ';' S* declaration? ]* '}' S*;
selector : any+;
declaration : property S* ':' S* value;
property : IDENT;
value : [ any | block | ATKEYWORD S* ]+;
any : [ IDENT | NUMBER | PERCENTAGE | DIMENSION | STRING
| DELIM | URI | HASH | UNICODE-RANGE | INCLUDES
| DASHMATCH | ':' | FUNCTION S* [any|unused]* ')'
| '(' S* [any|unused]* ')' | '[' S* [any|unused]* ']'
] S*;
unused : block | ATKEYWORD S* | ';' S* | CDO S* | CDC S*;
DIMENSION语法在最上面:
DIMENSION {num}{ident}
num应该是数字,翻一下ident的定义:
在4.1.1第二段的开头
ident [-]?{nmstart}{nmchar}*
nmstar长沙师范学院t和nmchar的分别有:
nmstart [_a-z]|{nonascii}|{escape}
nmchar [_a-z0-9-]|{nonascii}|{escape}
所以在编译calc(100%-CSS100px)时会产生歧义,在解析器看来应该是:100 和 %优先级英文-100px,会将%-100px认为是单位,CSS但是无该单位的定义,所以这段就无法解析。所以使用空格隔开。但是感觉这个是可以理解的,因为在数学标识符当中还有正号和负号这两个元素。如果纯单位方式来判陈思思断的话,理应calc(100%+100px)、calc(100% +100px)或者calc(100% -1长沙市天气00px)也生效,但优先级c语言是实际无法生效。为什么非得要都用空格?所以感觉这里需要引用正负号这个概念。就像mar优先级越小越优先吗gin和padd长沙市天气ing中会常常用到负数。优先级排序c语言就像用calc(100% -100px)为例,将其解析为100%和-100p优先级越小越优先吗x,使用什么运算符号进行运算?