【问题标题】:Is there a css minifier that calculates variables from :root {} (possibly from a different file)? [closed]是否有一个 css minifier 计算来自 :root {} 的变量(可能来自不同的文件)? [关闭]
【发布时间】:2019-06-25 23:32:28
【问题描述】:

我正在寻找一个 CSS 缩小器,或者只是 CSS 计算器,它可以为我提供具有精确属性值的 CSS,而不是保留 var(--root-value)。此外,如果可能,:root{} 设置将位于不同的文件中。

所以我制作了这个 Web 应用程序模板,我将其用于几个不同的网站。我有几个 CSS 文件,其中第一个只有 :root{} 值设置器,其余的使用

selector {
  property: var(--root-value);
}

格式。

我正在使用 VS Code,它是来自 HookyQR 的扩展 minify,而后者又使用来自 Jakub Pawlowiczclean-css 来缩小 CSS。

我一直在 Google 上搜索更好的缩小器,甚至只是一个计算器,我可以在使用 minify 缩小之前使用来计算这些值,但无济于事。

请指教。

initial-setting.css

:root {
    /* COLORS */
    --bg-color: #fff;
    --main-color: #913b86;
    --compl-color: #3b9146;
    --text-color: #666;

    /* DIMENSIONS */
    --navbar-height: 4em;

    /* SHOW/HIDE */
    --show-sidebar: block; /* block for true, none for false */
}

style.css

.header-navigation>ul>li {
    height: var(--navbar-height);
    line-height: var(--navbar-height);
}

.header .mobi-toggler:hover {
    color: var(--bg-color);
    background: var(--main-color) url(../img/icons/toggler.png) no-repeat 6px -28px;
    border-color: var(--main-color);
}

现在计算后我想得到

style.c.css

.header-navigation>ul>li {
    height: 4em;
    line-height: 4em;
}

.header .mobi-toggler:hover {
    color: #fff;
    background: #913b86 url(../img/icons/toggler.png) no-repeat 6px -28px;
    border-color: #913b86;
}

然后缩小类似

style.c.min.css

.header-navigation>ul>li{height:4em;line-height:4em;}.header .mobi-toggler:hover{color:#fff;background:#913b86 url(../img/icons/toggler.png) no-repeat 6px -28px;border-color:#913b86}

或者同样的东西直接在style.min.css.

【问题讨论】:

  • 一个可以做到这一点的缩小器将是一个非常糟糕的,你需要避免。以后可以使用其他 CSS 或 JS 更改自定义属性
  • 关于资源、库或软件推荐的问题在 Stack Overflow 上是题外话。

标签: css css-variables


【解决方案1】:

你需要一个 CSS 编译器。

我会建议Stylus,因为它具有灵活的语法(你甚至可以用编写 CSS 的相同方式编写),但是你可以访问一个名为 variables 的东西,这正是你的东西'正在寻找。

您可以通过 Stylus 或Sass(根据您的选择)进行设置,并在编译时编译变量进行计算,您将获得与您想要的相同的结果。

示例:

$bg-color = #fff;
$main-color = #913b86;
$compl-color = #3b9146;

div {
  color: $main-color;
}

【讨论】:

  • "使用 Stylus 获得样式:一旦您拥有 Node.js,安装 Stylus 就非常容易。所以获取您平台的二进制文件并确保它们还包括 npm,Node 的包管理器。" (来自 stylus-lang.com)。我们公司在 Linux 环境下使用 PHP 服务器。这仍然是我的答案吗?
  • @s3c Stylus 只会位于您的本地机器中,并将扮演编译器的角色。一旦你编译了.styl文件,它会给你原始的css作为输出,你可以把它放在你想要的任何服务器上。
  • 我正在使用 VS Code,最近开始使用 LESS。 --bg-color: #fff;color: var(--bg-color); 现在分别替换为 @bg-color: #fffcolor: @bg-color;,效果几乎很好。保存 style.less 后,它会自动创建 style.css 并上传。如果能自动编译并上传style.min.css就好了,但目前我对在开发阶段结束并更改中的源代码时创建style.min.css感到满意。当我只使用 css 时,它会在 Ctrl+S 时自动创建 min.css。谢谢大家
猜你喜欢
  • 1970-01-01
  • 2018-05-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-25
  • 1970-01-01
相关资源
最近更新 更多