- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我们有一个平台,在一个界面中包含多个应用程序。有一个通用样式表,出于性能原因,每个应用程序都有单独的样式表。整个平台为几个供应商打上了品牌,每个供应商都有自己的颜色,等等。我们通过为给定的品牌加载另一个样式表来做到这一点,其中只包含默认样式的覆盖。
现在我们正在考虑引入 LESS 来改进和组织我们的样式表。但我们正在努力寻找一个干净的解决方案来调整每个品牌的变量。
这是我们的元素结构:
platform/
css/
general.css (general styles for all applications)
app1.css (specific styles for application 1)
app2.css (specific styles for application 2)
...
branding1.css (color overrides for branding 1)
branding2.css (color overrides for branding 2)
...
有了 LESS,我们会想到这个结构:
platform/
css/
variables.less (containing default colors, etc.)
general.less (general styles for all applications)
app1.less (specific styles for application 1)
app2.less (specific styles for application 2)
...
branding1.less (variables overrides for branding 1)
branding2.less (variables overrides for branding 2)
...
现在我们如何轻松地将品牌覆盖应用到所有样式表?
到目前为止我们发现的是为所有样式表创建特定于品牌的 less 文件,例如为 general.less
创建 general.branding1.less
:
@import "general.less";
@import "branding1.less";
这为品牌 1 的一般样式创建了预期的结果,当然我们可以为每个应用程序样式表这样做。但这将导致 n*m 文件(应用程序 * 品牌)只有这样两条导入行。这听起来不像是一个很好的解决方案(没有提到在 HTML header 中引用这些文件的额外处理)- 没有更好的方法吗?
注意:我们使用 Web Essentials 在部署前预处理文件。客户端预处理是不可取的。
最佳答案
你可以使用 dotless提供更少的文件并跳过 Web Essentials 编译步骤——预处理仍将在服务器端进行。 Dotless 的 HTTP 处理程序接受来自查询字符串参数的变量值,因此在您的入口点样式表中您可以:
@import "@{brandName}.less";
并将其引用为
<link rel="stylesheet" type="text/css" href="main.less?brandName=foo" />
关于css - 覆盖多个 LESS 文件中的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30572108/
我在尝试使用 WebStorm LESS File Watcher 时遇到此错误 /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/
我有一个带有以下结构的 .less 样式表: @width:600; .some-style { width:@{width}px; } 这给出了以下错误: Expected '}' on l
说我有以下结构 /node_modules /src /components /component1 /style /style.less
我想使用灰度函数,但 LESS 一直抛出此错误,我没有看到灰度的 mixin 或如何使用它。有什么帮助吗? Error 148 Expected color in function 'graysc
我的文件较少,如下面的目录结构 vendor/includes/file1.less vendor/includes/file1.less vendor/includes/file1
如果我在 LESS 中定义以下嵌套样式: .nav-bar { .navbar-brand { background: #000; } } .nav-bar {
我正在尝试设置一个使用 lein-less 插件编译 .less 文件的 clojurescript 项目。我应该说我是 clojurescript 的新手。问题是它似乎没有运行。它在我运行“lein
有人会这样使用“less”: var less = require('less'); less.render('.class { width: (1 + 1) }', function (e, css
我正在尝试在一个新元素中测试 less.js。我 100% 确定 javascript 文件加载正常,但我的 css 文件夹中的 less 文件一直出现此错误。我打算在启动之前使用 less.app
我有以下更少: .container { .column, .columns { .one& { width: 40px; }
这是一个代码(test.less): body { padding: 50px; } body { padding: 20px; } 为什么在编译成 CSS 后我有这个: body {
我有一个变量 @index我想输出一个选择器,以便当 @index是 3 , 选择器是 [data-sth="3"] . 更长的例子: @index: 3; /* selector here */ {
假设我有一个使用 Less 定义的样式: ul.unstyled, ol.unstyled { margin-left: 0; list-style: none; } 稍后,我想重新使用 un
假设我有以下 Less 设置: .box { border: 1px solid #333; &.error { background-color: Red; } } 如果我想
我有一个 common.less文件,它为不同的皮肤实现了基本的 CSS: @textColor: black; @iconSize: 16px; .container: { color: @
我创建了使用 LESS 功能切换主题的代码。不幸的是,LESS 文件不会在浏览器中编译。如何在浏览器中编译 LESS 文件? 最佳答案 这是一张documentation : Client-side
我想使用 less 来定位类中的特定元素。 在这种情况下,我想定位类 button 的元素,但在此范围内我想定位一个 anchor 标签 a . 目前我有: .button { /* lots
我正在努力做某事。我的项目是这样的: /app /assets /components /stylesheets /less
我目前正在一个项目中使用 Twitter Bootstrap,包括 LESS 文件并使用我们编写的一些附加 LESS 代码进行编译。 最新版本意味着我们需要覆盖一些 Bootstrap LESS 变量
我有这个更少的代码,这工作得很好。我只是想在 less cli 编译它时节省一些空间。 .secondary-content { background: #ffcc80; color:
我是一名优秀的程序员,十分优秀!