使用 LESS 在 CSS calc() 中进行数学运算
Make math happen inside CSS calc() with LESS
我有以下较少的代码:
.@{namespace}users-row {
height: calc(100% - (@search-row-height - @vh-antialiasing-number));
}
我已经试过了:
.@{namespace}users-row {
height: calc(100% - (@{search-row-height} - @{vh-antialiasing-number}));
}
但这会在编译期间引发错误。
有没有办法让内括号计算为单个数字,但不能让 LESS 也计算外括号?我为编译打开了 StrictMath,因此不会评估外部的。我宁愿不要行转义,因为它会降低可读性。这也是我希望编译的理想情况:
.namespace-users-row {
height: calc(100% - Xpx)
}
其中 X 是两个变量的差值(均具有像素值)。
您必须使用“escape”功能:
@namespace:namespace;
@search-row-height:100px;
@vh-antialiasing-number:30px;
.@{namespace}-users-row {
height: calc(~"100% - " (@search-row-height - @vh-antialiasing-number));
}
更新:
根据@seven-phases-max的建议,你也可以将转义字符~
的使用限制规则写到-
符号:
.@{namespace}-users-row {
height:calc(100% ~"-" (@search-row-height - @vh-antialiasing-number));
}
两者都会得到如下处理CSS:
.namespace-users-row {
height: calc(100% - 70px);
}
P.S.: 我设置 @namespace:namespace
变量是因为我认为你也希望有选择器名称变量;为了这个特定的目的,变量名等于它的值。如果不需要,显然你可以跳过这个声明,去掉{ }
直接写成.namespace-users-row
我有以下较少的代码:
.@{namespace}users-row {
height: calc(100% - (@search-row-height - @vh-antialiasing-number));
}
我已经试过了:
.@{namespace}users-row {
height: calc(100% - (@{search-row-height} - @{vh-antialiasing-number}));
}
但这会在编译期间引发错误。
有没有办法让内括号计算为单个数字,但不能让 LESS 也计算外括号?我为编译打开了 StrictMath,因此不会评估外部的。我宁愿不要行转义,因为它会降低可读性。这也是我希望编译的理想情况:
.namespace-users-row {
height: calc(100% - Xpx)
}
其中 X 是两个变量的差值(均具有像素值)。
您必须使用“escape”功能:
@namespace:namespace;
@search-row-height:100px;
@vh-antialiasing-number:30px;
.@{namespace}-users-row {
height: calc(~"100% - " (@search-row-height - @vh-antialiasing-number));
}
更新:
根据@seven-phases-max的建议,你也可以将转义字符~
的使用限制规则写到-
符号:
.@{namespace}-users-row {
height:calc(100% ~"-" (@search-row-height - @vh-antialiasing-number));
}
两者都会得到如下处理CSS:
.namespace-users-row {
height: calc(100% - 70px);
}
P.S.: 我设置 @namespace:namespace
变量是因为我认为你也希望有选择器名称变量;为了这个特定的目的,变量名等于它的值。如果不需要,显然你可以跳过这个声明,去掉{ }
直接写成.namespace-users-row