【问题标题】:Is there a way to see which corrosponding LESS variable used for the CSS class/property?有没有办法查看用于 CSS 类/属性的对应 LESS 变量?
【发布时间】:2017-01-04 18:17:39
【问题描述】:

我在Drupal CMS 中使用Bootstrap theme

我使用Firebug 来检查页面的CSS 类和HTML 元素。

但是每当我检查时,它都会显示 CSS class/ 这是可以理解的,但是,有没有办法我们可以检查相应的 LESS 变量?


例如:

如果我们使用 firebug 检查button.btn CSS 选择器将显示font-weight: normal;

.btn {
  font-weight: normal;
}

和对应的LESS,

@btn-font-weight: normal;

【问题讨论】:

  • 你用什么来编译LESS文件?
  • @TjaartvanderWalt 我在终端中使用了这个命令less-watch-compiler less css,然后我按照这个answer 设置了less-watch。我对此了解不多,因此您可能可以从这些信息中弄清楚。
  • 也许可以看看这个问题stackoverflow.com/questions/20979732/…
  • 澄清:所以你希望在检查最后一页时能看到.btn {font-weight: @btn-font-weight}
  • @henry 没错..

标签: css twitter-bootstrap-3 drupal-7 less


【解决方案1】:

最短的答案:不,但如果你跑步

lessc less/style.less css/style.css --source-map

在您的观察者之前,您将能够 使用检查器查看每种样式来自哪个 LESS 文件。

不是你所希望的,但它至少可以帮助你追踪事情。

冗长的答案

在检查编译后的样式时无法看到.btn {font-weight: @btn-font-weight},必然:将LESS编译为CSS会将@btn-font-weight替换为normal

正如@tjaart-van-der-walt 所暗示的,使用源地图可能对您有所帮助。使用源 emap,您仍然不会看到原始 LESS 变量,但您将能够直接跳转到定义样式的 LESS 文件……甚至是正确的行。你仍然需要参考你的原始文件来整理 LESS 特定的代码,但至少你会确切地知道在哪里看(例如 my-partial-less-file.less:18 而不是 my-compiled-css .css:212)。

如果你有一个 one.less

* {
    background: red
}

还有一个two.less

* {
    border: 1px solid green
}

编译成 main.css

* {
    background: red;
}
* {
    border: 1px solid green;
}

在检查器中你会看到类似的东西

以前你会在哪里看到类似的东西

(“类似”,因为这些是 Chrome 屏幕截图。)

让源映射工作有两个步骤:1. 设置一个主文件(为阅读此问题的其他人提及这一点;在您的情况下,这已经处理好了:less/style.less 是您的主文件), 2. 生成源映射,以及 3. 在检查器中启用源映射。

1. 当我们到达 B 时,如果我们可以从单个文件中生成源映射,将会省去很多麻烦。这需要使用 @imports 所有其他文件的主文件来构建 LESS 文件。例如,

/styles
  └─┬─ main.less
    └─ components
        └─┬─ one.less
          └─ two.less

main.less 看起来像

@import 'components/one';
@import 'components/two';

不完全确定您的 Bootstrap Drupal 主题副本是什么,但在我从您的链接下载的副本中,感兴趣的文件似乎是 less/style.less,因此您无需在此处执行任何操作。

2. 在将 LESS 编译为 CSS 时,有很多方法可以生成源映射(有开发应用程序可以做到这一点,grunt 和 gulp 工具,以及命令行工具)。由于您使用的是裸命令行工具Deadsimple LESS CSS Watch Compiler,所以我们坚持使用该模型。

为了运行less-watch-compiler,您已经安装了LESS。万一其他人没有阅读这篇文章,请运行

$ (sudo) npm install -g less

其中安装了编译器lessc,它支持生成源映射。运行

$ lessc less/style.less css/style.css --source-map

这表示“在less/style.less上运行less编译器,将编译后的样式表输出到css/style.css,并生成一个style.css.map源图。(完整lessc documentation is here .)

2.5此时您可以运行less-watch-compiler less css,并按照正常工作流程进行操作)

3.

在浏览器的检查器中打开源映射。 Firebug 不支持源映射,但 Firefox 的内置检查器支持:打开检查器,右键单击任何样式,然后选择“显示原始源”。 Mozilla's documentation is here。 (Fwiw,Firebug 有望被合并到 Firefox 的开发者工具中。了解 here。)Chrome 还具有内置支持:inspector --> "..." 菜单(顶部对) --> 设置 --> "Sources: Enable CSS source maps" (对我来说,这是默认开启的),Edge (documentation here; 似乎开启了)默认)。

【讨论】:

    猜你喜欢
    • 2021-07-13
    • 2020-03-31
    • 2019-07-05
    • 1970-01-01
    • 1970-01-01
    • 2019-12-24
    • 1970-01-01
    • 1970-01-01
    • 2013-12-13
    相关资源
    最近更新 更多