LESS 框架中的 CSS 选择器异常?

标签 css css-selectors less

在 LESS 框架中编写 CSS 选择器时是否可以进行异常(exception)

例子:

<ul>
  <li>one</li>
  <li>two</li>
  <li><a href="#">three</a></li>
  <li><a href="#">four</a></li>
</ul>

有没有一种方法可以编写一个影响 所有

  • 实例的选择器, 那些包含 的实例除外?

    我知道 LESS 实现了 Guards(就像 if/else 语句一样),但实际上我不知道它们是否可以提供帮助,或者是否没有解决方案。

  • 最佳答案

    答案是“否”

    LESS,作为一个 CSS 预处理器,有两个主要的事情阻止了你想做的事情。

    1. 作为在服务器端运行的预处理器,它不知道页面的实际 HTML 结构(与在客户端运行的 javascript 不同)。即使您在实际版本中运行 LESS 客户端(通常不推荐),也需要额外的 javascript 工作才能让它真正了解 HTML 结构。所以 LESS 不能像 javascript 本身那样即时响应 HTML。
    2. 作为 CSS 预处理器,它最终只会从其代码中生成您可能用 native CSS 编写的内容。 Since there is currently no "parent selector" in CSS (这是你真正要问的......如何选择一个parent li 或不基于它的child a 元素),那么 LESS 不能产生 CSS 本身不能做的事情。

    因此,如果您可以控制 HTML,我建议在具有 a 或不具有 ali 元素上放置一个类。如果它是动态的(因此在运行时之前是未知的),那么 javascript 本身(无论是通过 JQuery 之类的库还是其他方式)将是留给您的唯一可能的解决方案。

    关于LESS 框架中的 CSS 选择器异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18595330/

    相关文章:

    css - 我可以在 Less 中使用带符号的 css 通配符选择器吗?

    html - 在全屏包装器中垂直居中可变高度 div

    html - 为什么此字体系列不能在 Chrome、Safari、Opera 和 IE < 9 中使用,但可以在 Firefox 和 IE 9 中使用?

    css - Modernizr 加载但在 IE8 中没有变化

    css - 受nth-child()影响的父元素

    CSS/SCSS 某些类型之间的相邻同级选择器

    css - 标题背景环绕

    node.js - 如何使用 webpack 从 npm 依赖项编译 .less 文件?

    css - 我可以使用依赖其他变量的变量创建 Less 颜色主题吗?

    html - 如何在 IE8 中的列表标记外显示左边框?