CSS/LESS 当 > 某事和 < 某事

标签 css conditional-statements less-mixins

我尝试在值小于和大于时设置属性,以设置要应用的属性的窗口。

示例:

.mixin (@colorVal) when (lightness(@colorVal) > 75%) {color:red;}
.mixin (@colorVal) when (lightness(@colorVal) > 25%) {color:green;}
.mixin (@colorVal) when (lightness(@colorVal) <= 75%) {color:green;}
.mixin (@colorVal) when (lightness(@colorVal) <= 25%) {color:blue;}

我不太明白如何组合守卫。在上面的示例中,亮度为 20% 的颜色将同时应用第三个和第四个防护。所以它会编译出绿色和蓝色的颜色。由于顺序,技术上可以正确渲染,但仍然有点困惑......

还有其他解决方案吗?谢谢!

最佳答案

From the LESSCSS docs

You can use logical operators with guards. The syntax is based on CSS media queries.

Use the and keyword to combine guards:

.mixin (@a) when (isnumber(@a)) and (@a > 0) { ... }

所以对于您的情况使用:

.mixin (@colorVal) when (lightness(@colorVal) > 25%) and (lightness(@colorVal) < = 75%) {
    color:green;
}

关于CSS/LESS 当 > 某事和 < 某事,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29476392/

相关文章:

ios - 具有获取 NSString 条件的宏

jquery - 向左滑动内部div无限循环

html - 随着浏览器宽度的变化将 div 置于彼此之下

html - CSS 在 ec2 中不工作

r - 使用 dplyr 创建一个字符变量,其值以先前变量(它们的名称和值)为条件

css - 在混合中使用未定义数量的参数

html - 如果图像是矩形,文本对齐中心在 Windows Phone 上不起作用

mysql有条件插入

less - 如何在 less 中将属性名称作为参数传递给 mixin

less - 根据另一个变量有条件地设置一个变量的值