在 LESS css 中增加一个变量

2023-11-22

如何在 LESS css 中增加变量?

这是例子..

@counter: 1;
.someSelector("nameOfClass", @counter);
@counter: @counter + 1;
.someSelector("nameOfClass", @counter);

上面的代码片段会导致这个“语法错误”

SyntaxError: Recursive variable definition for @counter

有解决此错误的方法吗?例如是否有像@counter++这样的符号?

Thanks..


绝对不可能

See 有关 LESS 变量的文档。本质上,LESS 变量是其创建范围内的常量。它们是延迟加载的,并且不能以这种方式“更改”。最后一个定义将用于该范围内的所有定义。在您的情况下,将会发生错误,因为变量无法引用自身。

考虑这个例子:

@counter: 1;
.someSelector("nameOfClass", @counter);
@counter: 2;
.someSelector("nameOfClass1", @counter);

.someSelector(@name; @count) {
  @className: ~"@{name}";
  .@{className} {
  test: @count;
  }
}

输出将是2对彼此而言:

.nameOfClass {
  test: 2;
}
.nameOfClass1 {
  test: 2;
}

这是因为 LESS 定义了@counter与该范围内变量的最后一个定义。它不注意order使用的调用@counter,但其行为与 CSS 非常相似,并考虑了变量的“级联”。

要在 LESS 中对此进行进一步讨论,您可以跟踪发生在这个 LESS 功能请求.

解决方案是局部变量的递归调用设置器

最多七相linked他认为 LESS 中有一个错误,但我认为事实并非如此。相反,在我看来,这是一种创造性地使用递归重置计数器来获得所需的效果。这使您可以实现您想要的目标(使用我的示例代码):

// counter

.init() {
  .inc-impl(1); // set initial value
} .init();

.inc-impl(@new) {
  .redefine() {
    @counter: @new;
  }
}

.someSelector(@name) {
  .redefine(); // this sets the value of counter for this call only
  .inc-impl((@counter + 1)); // this sets the value of counter for the next call
  @className: ~"@{name}";
  .@{className} {
    test: @counter;
  }
}

.someSelector("nameOfClass");
.someSelector("nameOfClass1");

这是 CSS 输出:

.nameOfClass {
  test: 1;
}
.nameOfClass1 {
  test: 2;
}

NOTE:我相信您在这里并不是严格更改全局值,而是在每次调用时设置一个新的本地值.someSelector。这是否基于错误行为值得怀疑,但如果是这样,这个解决方案将来可能会消失。 有关此方法的局限性的进一步评论,请参阅此处的讨论.

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

在 LESS css 中增加一个变量 的相关文章

  • 我可以使用 ASP.NET WebForms 母版页在每个内容页中包含不同的 javascript/css 文件吗?

    我有几个使用相同母版页的内容页 它们并不都需要包含在相同的 javascript 和 css 文件中 tag 是否可以更改内容来自内容页面的标签 确实如此 但我建议采取一些不同的做法 我在关闭正文标签的正上方放置了一个内容占位符 然后我填充
  • 如何让CSS选择以字符串开头的ID(不是Javascript)?

    如果 HTML 中有这样的元素 id product42 id product43 如何匹配所有以 product 开头的 id 我已经看到了完全使用 javascript 执行此操作的答案 但是如何仅使用 CSS 执行此操作 id pro
  • chrome 中选择选项元素的额外填充

    我有一个选择元素 用户可以在其中选择分类和描述 仅在 Chrome 浏览器中 我有一个额外的填充 无法使用 padding 0 或其他 css 标签删除它 Chrome 的屏幕 https i stack imgur com m3iIb p
  • 使用内联样式有哪些风险?

    A 内容安全政策 https developer mozilla org en US docs Web HTTP CSP with a default src or style src指令将阻止内联样式应用于
  • LESS CSS 语法对现代化很有用

    通常我使用现代化 http modernizr com 了解浏览器的功能 同时 我用LESS CSS http lesscss org 使我的CSS更具可读性和可维护性 使用 LESS 嵌套规则的常见样式如下所示 header color
  • CSS使背景图像使用字体字符

    我想使用字体字符 例如来自 font awesome 作为输入元素的背景图像
  • TDD/测试 CSS 和 HTML? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 有没有办法测试 CSS 和 HTML 例如 有时某些通知会受到某些 CSS 更改的影响 我不想每次进行更改时都手动测试所有通知 Tha
  • 如何在文本区域中使用除“文本插入符号”之外的透明字体?

    我有一个简单的文本区域 我需要制作透明字母 同时允许文本插入符可见 当我应用以下规则时 我会得到隐形插入符 textarea background transparent opacity 0 当我键入不可见文本时 我需要看到文本插入符移动
  • 根据变量值将 LESS 编译为多个 CSS 文件

    有一个指定颜色的变量variables less文件 例如 themeColor B30F55 和一个 json构成实体列表的文件 其中每个键是一个实体 ID 键的值是该实体的颜色 例如 8ab834f32 B30F55 3cc734f31
  • 如何倾斜 div 并保持背景图像不倾斜

    我已经花了几个小时了 所以希望有人能提供帮助 我有一个网站 其中大部分 div 都是倾斜的 大多数 div 都包含背景图像 现在我已经让 div 倾斜了 内容完美地位于其中 唯一的问题是背景图像 它与父级一起倾斜 我用谷歌搜索了很多 但找不
  • 调整文本区域大小

    我需要使用文本区域来显示一些文本 问题是 如果我放置 4 5 行文本 就会出现滚动条 如何使用 CSS HTML 使文本区域与其内容一样大 没有滚动条 文本区域不需要动态更改其大小 我仅使用它来显示文本 我也可以使用禁用的文本区域 我希望文
  • 防止浮动换行,直到元素达到最小宽度

    我有可变宽度的 HTML 布局 内容左侧有一个固定宽度的菜单 div 可变宽度 由 css max width 和 min width 设置 对于非常窄的浏览器窗口 我希望内容包裹在菜单下方 我目前通过设置来实现这一点float left在
  • 为什么需要重置浏览器?

    好吧 我知道这可能不是最好的标题why我们需要重置浏览器 因为浏览器有不同的默认设置 我的问题太长 无法放入标题中 如果每个人 90 的时间都需要使用重置样式表 为什么浏览器需要设置默认样式 无论如何我们都会删除它们 对吗 因为某些规则默认
  • 如何为背景图像添加边距?

    我想向背景图像添加边距 以便将其与屏幕中间保持距离 但将其添加到该类中会为整个主体添加边距 body poppage background url Imagenes tip3 png 50 200px no repeat E2E4E9 我怎
  • 如何并排放置两个

    我有两个 div 我想要并排放置的元素 如下所示 navigation content 我想要导航 div 根据需要尽可能大 但不能更大 收缩以适应行为 内容 div 然后应该填充剩余的空间 如何在不指定百分比 例如 20 80 的情况下使
  • 按百分比设置 bootstrap 模态身高

    我正在尝试制作一个带有主体的模态 当内容变得太大时 该主体会滚动 但是 我希望模式能够响应屏幕尺寸 当我将最大高度设置为 40 时 它没有任何效果 但是 如果我将最大高度设置为 400px 它会按预期工作 但不会响应 我确信我只是错过了一些
  • 如何使用 Antd / Less 和 Sass / CSS 模块配置 Next.js

    我想用Next js https nextjs org 带有 Sass 和 CSS 模块但也想使用蚂蚁设计 https ant design 并希望对较小的建筑尺寸使用 Less 样式 我可以启用 CSS 模块或 Less 加载器 但不能同
  • Twitter 嵌入时间轴小部件

    我继续下载http platform twitter com widgets js http platform twitter com widgets js And the http platform twitter com embed t
  • 三级十进制有序列表 CSS

    我有一个 html 中的三级有序列表 我想为其提供如下样式 1 Item 1 1 1 Item 2 1 1 1 Item 3 下一个 plunker 中有一个 html 示例 http plnkr co edit DqhZ5pJILTUHG
  • 闪亮井板宽度

    library shiny library shinydashboard ui lt dashboardPage dashboardHeader dashboardSidebar dashboardBody wellPanel tags d

随机推荐

  • 如何使用 Phusion Passenger 纠正此 ESM 错误?

    我正在尝试使用 Phusion Passenger 在生产服务器上启动我的 NodeJS API 我使用了最后的 ECM 语法来导入 导出我的模块 然而 当尝试访问我的 api 时 Passenger 返回此错误消息 Error ERR R
  • 绘制时间序列时将 x 轴标签设置为日期

    x read table text Qtr1 Qtr2 Qtr3 Qtr4 2010 1 8 8 0 6 0 3 0 2011 2 0 11 0 7 0 3 5 2012 2 5 14 0 8 0 4 2 2013 3 0 15 2 9 5
  • 如何在 JavaScript 中标准化正数列表?

    我有一个充满正 int 值的数组 如何规范化该列表以使最大值始终为 100 先感谢您 这个想法是首先找到数组中的最大数字 使用apply on Math max 然后求最大数与 100 之间的比率 之后 只需循环数组并将所有数字除以该比率即
  • 如何使用原始索引枚举切片?

    如果我想枚举一个数组 比如说map 我需要使用元素的索引及其值的函数 我可以使用enumerate 功能 例如 import Foundation let array Double 1 2 3 4 let powersArray array
  • constexpr std::array 与 static_assert

    include
  • C++ 控制台输出中的上标

    I d like to have my program output cm2 cm squared 如何制作上标2 正如 Zan 所说 这取决于您的标准输出支持的字符编码 如果它支持 Unicode 您可以使用 U 00B2 如果它支持源文
  • 生成分段迷宫的算法

    I want to generate a maze that looks like this 也就是说 它由一个方向上的路径组成 然后将这些路径连接起来 我一直在寻找一种算法来生成这样的迷宫 但没有成功 具体来说 我don t想要一个这样的
  • 我应该使用 mySQL 还是 MongoDB [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心以获得指导 目前有很多关于 NoSQL
  • JButton 扩展以占据整个框架/容器

    嘿大家 我正在尝试制作一个带有按钮和标签的 Swing GUI 我使用边框布局 标签 在北场 显示良好 但按钮占据了框架的其余部分 它位于中心场 知道如何解决这个问题吗 您必须将按钮添加到另一个面板 然后将该面板添加到框架 事实证明 Bor
  • Javascript:从数组中随机配对项目而不重复

    我正在尝试制作一个非常基本的 秘密圣诞老人 生成器 作为我的第一个 Javascript 项目之一 我已经搜索了几个小时来寻找这个问题的解决方案 但到目前为止我还没有发现任何有效的方法 我有一系列需要相互配对的名称 我成功地将它们配对 但现
  • 如何在 Windows 7 x64 上使用 Visual C++ 6 进行调试?

    当然答案是 你不能 或 使用 XP 模式 但我想知道是否可能 我遇到的问题是 每当我调试某个应用程序并命中断点时 当我停止调试器时 被调试者仍然卡住 它无法被杀死 我无法附加另一个调试器 它说它已经被调试 在我关闭 Visual C 之前它
  • 使用 Apollo 客户端在第二个查询中使用第一个查询的结果?

    我正在使用 Apollo React 和 Graphcool 我有一个查询来获取登录用户 ID const LoginServerQuery gql query LoginServerQuery loggedInUser id 我需要在另一
  • Console.Writeline 对性能的影响

    我有一个应用程序有 4threads 每个线程实际上是一个Timer并在特定的时间间隔内执行单独的工作 这些线程通过使用显示其日志Console Writeline 性能在此应用中非常重要 我想知道是否删除Console Writeline
  • 事件发射器从引导模式到父模式

    我想将模态事件从模态组件传递到模态的父组件 但由于某种原因 我似乎无法让 EventEmitter 工作 如果有人有想法 将不胜感激 主要代码如下 从 ng bootstrap 演示分叉的 非工作 plunk 在这里 http plnkr
  • 错误:无法卸载“wrap”。安装tensorflow-gpu时~=1.14

    我正在尝试安装以下版本的 TensorFlow GPU 因为 gitrepo 的作者建议了它here jalal goku examples pip install tensorflow gpu 1 14 Collecting tensor
  • Go 1.6 中的供应

    我已经阅读了尽可能多的文档和 StackOverflow 文章 但我没能使用 Go 1 6 中的新供应商功能进行导入 这是我整理的一个示例项目Goji去测试 目录结构是这样的 src main go vendor github com ze
  • Android - 无法找到与目标“Android 1.6”错误兼容的 AVD

    我第一次尝试运行 Android 版 Hello World 应用程序 但我不断收到 Failed to find an AVD compatible with target Android 1 6 当我尝试创建 AVD 时出错 我已尝试以
  • 为什么 git push origin master 会画 ASCII 艺术? [复制]

    这个问题在这里已经有答案了 当我跑的时候git push origin master 我看到了一张非常不寻常的 ASCII 图片 我跑了git push几百次了 以前从未见过这种情况 有什么解释吗 git push origin maste
  • 换行符或“\n”不起作用。

    你能告诉我为什么换行符 n 不起作用吗 itemsToWriteToFile Number 1 12 nNumber 2 13 nNumber 3 13 nNumber 4 14 itemsToWriteToFile str itemsTo
  • 在 LESS css 中增加一个变量

    如何在 LESS css 中增加变量 这是例子 counter 1 someSelector nameOfClass counter counter counter 1 someSelector nameOfClass counter 上面