在 LESS mixin 中使用选择器名称作为变量

2024-01-12

我正在尝试在 LESS 中创建一个 mixin,它将使用它的选择器名称作为混合内部的变量。 mixin 应该看起来像这样,但我找不到它的确切语法,或者是否可能:

.bg{
 background-image: url('images/@{SELECTORNAME}.png');
}

#header{
  .bg;
}

结果是:

#header{
    background-image: url('images/header.png');
}

我认为这是不可能的,加上如果选择器是这样的会发生什么:

div#menu ul li

这实际上行不通,但也许任何人都知道替代方案,无论这在任何其他预处理器中是否可能。

谢谢你!


您无法“读取”选择器名称。

但是,您可以构建选择器结合 mixin 中的文件名进行链接,如下所示:

LESS

.buildSelectorConnection(@selectorName, @pre: ~'') {
  @{pre}@{selectorName} {
     background-image: url('images/@{selectorName}.png');
  }
}

.buildSelectorConnection(header, ~'#');
.buildSelectorConnection(do-a-class, ~'.');

CSS输出

#header {
  background-image: url('images/header.png');
}
.do-a-class {
  background-image: url('images/do-a-class.png');
}

然而,如果你想让这样的东西能够处理类似的事情,那么你需要更多的逻辑、决策以及 LESS 中的一些 JavaScript 编码div#menu ul li实际生成的文件名类似于div-menu-ul-li.png.

尽管如此...

可以这样做:

LESS

.buildSelectorConnection(@selectorName, @pre: ~'', @post: ~'') {
  @{pre}@{selectorName}@{post} {
     background-image: url('images/@{selectorName}.png');
  }
}

.buildSelectorConnection(menu, ~'div#', ~' ul li');

CSS输出

div#menu ul li {
  background-image: url('images/menu.png');
}

这基本上允许您构建任何选择器字符串,但文件名本身只是传入的初始选择器,它需要是对文件名有效的东西。

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

在 LESS mixin 中使用选择器名称作为变量 的相关文章

随机推荐

  • Kubernetes 入口路由到 Nextjs 应用程序的问题

    所以我有一个有趣的用例 我在 Kubernetes 集群上运行多个微服务 我的应用程序使用 NextJS 对 next 路由进行内部调用 我的问题来自这样一个事实 我需要一种方法来区分服务及其对 next 文件的请求 因此 我实现了 Nex
  • 将抛出的异常更改为失败的简洁方法?

    有没有比以下更简洁的方法来将抛出的异常提升为失败 try die always CATCH default fail 这是莫里茨代码的更简洁版本 try something orelse fail
  • python程序崩溃后如何重新启动

    我有一个 python 脚本 它启动一个程序并自动执行它 不断处理新数据并保存到预设目录 永久运行 Python 脚本 在发生错误时记录错误并在崩溃时重新启动的推荐方法是什么 到目前为止我遇到过os execv并以此开始 import sy
  • 为什么从 void 函数模板返回时不会出现编译器错误?

    考虑 void f return 5 以上会引发错误 但为什么不是这个呢 template
  • 通过 .Rmd 在标头中插入标签

    我正在使用 Rstudio 创建 Rmd 报告 并且我希望能够将元标记插入到当 Rmd 被编织成 html 时 从文档上针织选项 http yihui name knitr options package options我想我可以设置标题选
  • 如何根据 R 中另一列中的值设置列值

    我正在尝试根据另一列中的值添加新列 基本上 如果另一列缺失或为 0 则将新值设置为 0 或 1 下面这段代码有什么问题吗 times nrow eachfile for i in 1 times eachfile SalesCycleN0
  • 带有先前获取参数的 HTML 表单 GET 方法

    我在页面上有一个带有获取参数的表单 index php PageID 12 然后 我在该页面上有多个表单 当用户选择详细信息时 它们会构建页面详细信息 我的问题是 当发布表单时 Get 会覆盖其他 get 参数 我可以使用 post 但只能
  • awk科学计数法输入

    我在让 awk 从文件中读取科学记数法时遇到了一些麻烦 这里是一些示例输入 Plane Turn Real Imaginary HOR 1 0 0000e 00 2 1885e 07 HOR 1 4 8481e 08 8 1221e 08
  • SML/NJ:如何使用哈希表?

    我真的很想在 SML 中创建一个哈希表 似乎 SML NJ 中已经有一个结构 问题是 我该如何使用它 我还没有完全理解如何在SML中使用结构 并且我读过的书中的一些非常基本的示例给了我错误 我什至不知道如何纠正 所以使用HashTable结
  • WebStorm - 未解析的变量或类型 - Sails / module.export [重复]

    这个问题在这里已经有答案了 尝试修复 JavaScript 中的 WebStorm v11 0 4 警告 很多unresolved variable or typeSailsJS 应用程序中自定义类型的错误 例如以下错误 我已经在 WebS
  • HttpURLConnection 在 Android 2.x 中工作正常,但在 4.1 中不行:未发现身份验证挑战

    我有一些典型的代码 它们使用 HttpURLConnection 来获取带有 URL 的文件 它们在 android 1 x 和 2 x 中运行良好 但在Android 4 1中失败了 我在网上搜索了一下 但几乎没有找到类似的信息 有人愿意
  • 从 Winform 迁移到 WPF

    我们使用 Winforms 和 Infragistic 框架 我们正在考虑迁移到 WPF 问题是我们在 Winforms 中已经有几个表单 对话框等 我们需要共同的外观和感觉 因此我们需要将所有内容迁移到 WPF 有没有迁移工具可以将 Wi
  • 免费的 VB6/VBA 分析器和 Excel 最佳实践

    我们有很多通过 VBA 和 Excel 生成的报告 只有一小部分报告是实际计算 大部分工作是 SQL 调用和单元格的格式化 写入 其中最长的需要几个小时 大多数每次大约需要 20 30 分钟 VBA Excel 代码插入 VB6 桌面应用程
  • Numpy std(标准差)函数奇怪的行为

    从统计学的角度来看 当所有值相等时标准差应该为 0 为了arr1结果符合预期 0 但对于arr2 is 1 3877787807814457e 17 很小但不是0 这会导致问题 例如zscore 这是正确的行为还是奇怪的错误 import
  • Python:将 X509 证书的颁发者 CN 值存储为字符串

    我正在使用以下代码 from cryptography import x509 from cryptography hazmat backends import default backend cert info x509 load pem
  • BeautifulSoup 没有给我 Unicode

    我正在使用 Beautiful soup 来抓取数据 BS 文档指出 BS 应始终返回 Unicode 但我似乎无法获取 Unicode 这是一个代码片段 import urllib2 from libs BeautifulSoup imp
  • Fody,属性已更改并设置相同的值?

    有没有什么方法可以配置 fody 不检查设置为属性的值 我遇到了值相同并且我希望设置属性的情况 因为我在属性设置器中有未调用的附加逻辑 这显然是在最初的问题发生几年后 但供将来参考 这确实可以通过修改中的选项来实现FodyWeavers x
  • 在地图 C++ 中使用列表

    我可以使用以下语法 std map
  • 是否可以在全文搜索中将 NEAR 和 FORMSOF 组合在一起?

    我有这个 SELECT FROM AwesomePeople WHERE CONTAINS Name NEAR Nathan Fillion MAX TRUE 但我想将它结合起来 这样它就可以使用我的词库来寻找替代方案Nathan and
  • 在 LESS mixin 中使用选择器名称作为变量

    我正在尝试在 LESS 中创建一个 mixin 它将使用它的选择器名称作为混合内部的变量 mixin 应该看起来像这样 但我找不到它的确切语法 或者是否可能 bg background image url images SELECTORNA