在 Less 循环中构建重复选择器

2023-12-01

我已经看到了 LESS 中循环的各种方法,但我还没有找到构建选择器的方法(我猜聚合是正确的术语)。

例如,我想要这样的东西:

.staticClass .repeatedClass .repeatedClass > .finalStaticClass{
    height: 20px;
}

Where .repeatedClass将根据循环计数生成。.staticClass and .finalStaticClass将是(顾名思义)静态的。

另外,height对于每个循环计数,属性将增加 10(或任何给定数字)。


我会以这种方式处理它:

.generateClasses (@index, @n, @in:"") when (@index > 0) {
    @concatenate: "@{in} .repeatedClass";
    @selector: ~".staticClass @{concatenate} > .finalStaticClass";
    @{selector}{ height: unit(@n,px) };
    .generateClasses((@index - 1), (unit(@n) + 10), @concatenate);
}
.generateClasses(0, @n, @in){};

.generateClasses(4, 10px);

您将连接的生成的类传递到下一个循环,并每次添加另一个类。这@index是循环的计数器,并且@n是您想要增加的值。

CSS 输出:

.staticClass  .repeatedClass > .finalStaticClass {
  height: 10px;
}
.staticClass  .repeatedClass .repeatedClass > .finalStaticClass {
  height: 20px;
}
.staticClass  .repeatedClass .repeatedClass .repeatedClass > .finalStaticClass {
  height: 30px;
}
.staticClass  .repeatedClass .repeatedClass .repeatedClass .repeatedClass > .finalStaticClass {
  height: 40px;
}

编辑 - 对于旧版本的 Less:

在 Less .test在下面的示例中),它限制了变量。然后你可以循环遍历这个,按照以下方式做一些事情:

.generateClasses (@index, @n, @in:"") when (@index > 0) {
    @concatenate: "@{in} .repeatedClass";
    @selector: ~".staticClass @{concatenate} > .finalStaticClass";
    .generateClasses((@index - 1), (unit(@n) + 10), @concatenate);
}
.generateClasses(0, @n, @in){};

.test(@i, @ni){
    .generateClasses(@i,@ni);
    @{selector} {
        height: @ni;
    }
}

.printClasses(@i:1,@ni:10px) when (@i > 0) {
    .test(@i,@ni*@i);
    .printClasses(@i - 1,@ni);
}

.printClasses(4);

输出 CSS 现在将是:

.staticClass  .repeatedClass .repeatedClass .repeatedClass .repeatedClass > .finalStaticClass {
  height: 40px;
}
.staticClass  .repeatedClass .repeatedClass .repeatedClass > .finalStaticClass {
  height: 30px;
}
.staticClass  .repeatedClass .repeatedClass > .finalStaticClass {
  height: 20px;
}
.staticClass  .repeatedClass > .finalStaticClass {
  height: 10px;
}

如果您只需要一次生成一个选择器,您可以跳过第二个循环,只需调用.test()mixin 到任何你需要的地方。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Less 循环中构建重复选择器 的相关文章

  • 如何减少 VS Code 中选项卡手柄的高度?

    在 的帮助下this https github com be5invis vscode custom css扩展 您可以更改 VS Code 的样式 我想将 filetabs 的高度减少到 20px 我正在使用这样的东西 editor gr
  • 如何正确使用 z-index?

    请在此处查看此页面 http www blakearchive org blake public exhibits canterburySpecial html http www blakearchive org blake public
  • 更改 Angular 对话框的背景颜色

    我正在尝试更改对话框背景 无需触摸style css file 正如其他一些答案所说 有很多方法可以设置对话框样式 1 此解决方案适用于宽度和高度 但透明背景被 忽略 this dialog open DialogComponent dis
  • 如何为平板电脑和 iPhone 制作样式表

    我认为样式表上的链接目标将使我的 css 文件仅在平板电脑或 iPhone 上加载时加载 但我试图隐藏的元素仍然存在 我目前正在使用 media handheld 有太多的移动设备型号需要为其编写样式表 你最好根据以下内容调整你的CSS屏幕
  • 裁剪响应式全宽图像

    我必须剪辑跨越整个宽度的图像 以下事情对我不起作用 剪辑 这需要绝对位置 因此块元素不会堆叠在下面 背景位置 缩放时无法正确剪辑 放大时剪辑的部分会增加 反之亦然 包装器 包装器高度取决于浏览器宽度 因此其值应该是动态的 我使用了 seti
  • iPhone 4 上不稳定的 CSS3 动画

    我有一个非常简单的 或者至少我认为是 动画 我所做的只是 webkit background size 的动画 bubble position relative width 397px height 326px background url
  • 如何在 CSS 中选择纯 HTML 文本?

    你们有人知道如何在 CSS 中选择纯 HTML 文本吗 我有以下结构 div p class caption caption1 p div class tabs div class moving bg div p class text ta
  • 设置绝对仓位和保证金

    我想设置一个元素的position to absolute并有一个margin bottom 但似乎margin bottom没有效果 HTML div div CSS container border 1px solid red posi
  • Rails 上的 SASS 无效 CSS 错误

    我正在尝试使用http startbootstrap com stylish portfolio http startbootstrap com stylish portfolio但是 在我的 Rails 应用程序中 我在 vintage
  • 角度材质表-表内边框

    I am using Angular material table and I want to set border inside the table Using CSS I was able to set border Normal ca
  • 设置引导工具提示上的箭头样式[重复]

    这个问题在这里已经有答案了 我正在尝试使用以下方式设置工具提示样式 tooltip inner 但我遇到了麻烦 因为我找不到如何设置工具提示小箭头的样式 如屏幕截图所示 工具提示的箭头是黑色的 我想在其上添加新颜色 any suggesti
  • 使用最后一个子选择器减少 CSS

    我在用less并试图得到last输入有一个边距底部 of 10px 这是我所拥有的 但它不起作用 并且没有在最后一个输入上应用 margin bottom 有什么想法吗 input margin bottom 0px last child
  • CSS3 变换:IE 中的缩放

    我想使用CSS3属性transform scale div transform scale 0 5 0 5 有没有办法在 Internet Explorer 8 及更低版本中模仿这个 可能与filter或者 JavaScript 解决方案
  • Bootstrap

    我正在尝试使用 Bootstrap 构建一个网站 到目前为止 一切都按计划进行 我想要一个固定的导航栏 并且我正在使用内置函数 div class navbar navbar fixed top 这很棒 正是我所需要的 但我希望导航和标题从
  • 如何使用 CSS 或 jQuery 设置第一个和最后一个 li 的样式?

    我如何设计第一个 顶级 li和最后一个 顶层 li使用 CSS 还是 jQuery 我正在使用 CSS 设置第一个li但它也是造型第一li在每个中学阶段ul 那么我怎样才能让它只设置样式li其中包含 Main 1 最后一个包含 Main 6
  • Bootstrap 响应式表格在 iOS 设备上无法垂直滚动

    这就是我所拥有的 div class table responsive table class table style background transparent table div 我正在使用以下 bootstrap css 文件 ht
  • 如何显示接下来的三个图像单击加载更多按钮

    我需要一个加载更多按钮来显示图像 页面加载时 我显示 3 个图像 单击 加载更多 按钮后 接下来的 3 个图像将显示在屏幕上 我尝试了下面的代码 但它不起作用 你能帮我解决这个问题吗 function item slice 0 2 show
  • WordPress 子主题包括包含文件

    我在一家WordPress使用 AMPPS 作为本地主机在我的本地计算机上进行设置 使用 Delta 主题 我创建了一个子主题 delta2 child 初始设置效果很好 但是 我需要更改包含文件夹中名为 home slider php 的
  • 使用flex-basis控制行上显示的项目数

    我想在使用 Flex 时将元素推出以隐藏它们 例如 如果flex basis为 50 仅显示两个项目弯曲到给定空间 而其他元素则在overflow hidden 领土 Or if flex basis为 25 则仅显示 4 个 Flex 元
  • 将引导程序弹出框保留在视口内

    我正在尝试使用带有按钮的侧边栏创建一个菜单 每个按钮都有一个指定的包含相关数据的弹出窗口 不幸的是 其中一个弹出窗口可能包含任意数量的行 并且在某些情况下它可能部分位于视口之外 See http jsfiddle net bfd9f 1 h

随机推荐

  • echo shell 打开的目录:startup

    进入时start shell startup进入命令提示符 它会在启动文件夹中打开一个新窗口 如何打印该文件夹的路径但实际上不在资源管理器中打开该文件夹 您可以使用 NET s Environment SpecialFolder 此 Pow
  • 在 C++ 中的派生类构造函数中访问基模板类的变量

    让我们看一下这个简单的代码示例 其中包括一个基类和一个从 Base 派生的类 该类在其构造函数中需要基类成员的地址 include
  • 与 Polymer.Templatizer 的两种方式数据绑定

    我正在尝试使用模板化器在 Polymer 中的主机元素和模板之间进行两种方式的数据绑定 例如 如果我试图保持两个输入框同步
  • 应用程序 didreceiveRemoteNotification 并跳转到特定视图

    我一直在尽一切努力来解决这个问题 当应用程序关闭时 我会收到一条通知 其中包含 2 个自定义项目 一个类型和一个 ID 类型应该告诉我要加载哪个视图 而 id 应该告诉应用程序从数据库获取哪一行 我正在经历地狱般的尝试来解决这个问题 我需要
  • 自动 azure sql 导出失败

    我需要将 bacpac 文件自动导出到 blob 存储 在天蓝色管理门户中 我已将其配置为导出数据库 但它一次又一次地失败 它在操作日志中说 创建临时数据库失败 并且像这样的电子邮件 无法制作要导出的临时数据库副本 您可以在 Windows
  • Rust:如何将 &str 转换为字符串并用 ffi 返回?

    我正在尝试获取 C 库返回的 C 字符串 cstr 并通过 FFI 将其转换为 Rust 字符串 mylib c const char hello return Hello World main rs feature link args e
  • 为什么我的 CSS 和 PHP include 无法加载到我的 WebView 中

    I use a WebView在我的应用程序中 当应用程序未连接到互联网时 我想在本地提供该网站 我能够构建APK并将应用程序安装到我的设备上 但是当我离线启动应用程序时 它只显示正文PHP 但它没有调用 加载CSS归档或包含PHP fil
  • 为什么触摸事件侦听器似乎阻止在 iPhone 或 iPad 上选择谷歌翻译语言?

    我的谷歌翻译小部件有问题 使用 iPhone 或 iPad 时 我无法选择要翻译的语言 我可以单击第一个按钮 但是当出现语言菜单并点击一种语言时 菜单会立即消失 并且单击会记录在菜单后面的元素上 这个问题只发生在非常特殊的情况下 我将在下面
  • 包含浮动 div 时的包装问题

    我想创建一个以浏览器为中心 有边框的包装器 它可以在各种 div 周围自动扩展高度 当使用浮动来保持 div 内联时 包装器会在第一个 div 之后停止 友善一点 这可能是正确的方法 也可能不是正确的方法 但这就是我来这里的原因 这是一个简
  • MDN 如何检测到来自服务器端 iframe 的请求并且不发送任何内容?

    请注意 这个问题与问题没有直接关系服务器端检测 IFrame 内显示的页面 正如我向您展示的一个例子它会出现MDN Mozilla 开发者网络 的人员是already检测内容正在传递到 iframe 不过 如果您阅读本文 我会讨论这根本与服
  • Tensorflow 对象检测 API:多个对象坐标

    我使用张量流在网络摄像头中进行对象检测 此外我还必须识别图像中每个已识别对象的坐标 当我打印边界框时 即 盒子 我看到的是一个数组数组 如果我将第一个数组拉到盒子数组中 它会给出 ymin xmin ymax xmax 这是我猜测的第一个对
  • 使用 Java Streams 从字符串数字列表中查找最大数字

    我正在尝试获取字符串列表中的最大数量 我的代码是 List
  • 违反约束异常 ORA-00001

    我正在使用Oracle数据库 我们经常看到对我们服务的调用失败 当我查看日志时 我在表中看到以下异常 java sql BatchUpdateException ORA 00001 违反唯一约束 DBSCHEMA IDX CO DETAIL
  • JavaScript >> 代表什么? [复制]

    这个问题在这里已经有答案了 我正在将 JavaScript 算法翻译成 PHP 我遇到了符号 gt gt 但我不知道它是什么意思 在谷歌上搜索符号很难 所以有人能告诉我它是什么意思吗 这是一个位移运算符 http www contactor
  • Git 中的“一棵树”是什么意思?

    的联机帮助页git diff says it NAME git diff 显示提交 提交和工作树等之间的更改 描述 显示之间的变化工作树和索引或a tree 指数和之间的变化a tree 之间的变化两棵树 两者之间的变化斑点对象 或磁盘上两
  • 访问.cs文件中声明的Web方法不与ajax(jquery)中的任何aspx或ascx文件关联

    您好 我将一个 Web 方法从 aspx 页面的代码隐藏文件移动到数据部分中存在的另一个 cs 文件 不包含任何 aspx 页面 以前我使用Ajax访问web方法 url像 type post contentType application
  • sqlite:别名列名不能包含点“.”

    抱歉我的英语不好 如果您在 sqlite 数据库上尝试此选择操作 从表中选择列 AS 别名 1 您将获得预期的列名称 alias 1 result 1 result 2 但如果您的别名包含一个点 你得到了错误的列名 从表中选择列 AS al
  • HTML 5 - iOS 上的输入类型日期格式

    我在 iPhone 上使用 HTML 5 表单 该表单有一个如下所示的输入元素
  • 为什么按 Enter 键后 scanf 将控制权返回给程序?

    我写了下面的程序 void main int piarrNumber1 int calloc 1 sizeof int int iUserInput 0 scanf d iUserInput piarrNumber1 sizeof piar
  • 在 Less 循环中构建重复选择器

    我已经看到了 LESS 中循环的各种方法 但我还没有找到构建选择器的方法 我猜聚合是正确的术语 例如 我想要这样的东西 staticClass repeatedClass repeatedClass gt finalStaticClass