如何在 lesscss 中进行主题化

2023-11-24

当我处于开发应用程序的预生产周期时,我经常改变视觉效果,以便与客户验证的内容保持一致。

保留同一页面的一些视觉效果(称为主题)会很有趣,以便我可以将它们快速呈现给客户。

我发现的方法是创建一个放在主体上的外观类,通过更改它,我可以相应地更改页面本身。

这就是说,我对主题化全局较少变量感兴趣,如下所示:

// default appearance
@navBarHeight: 50px;

.appearanceWhite {
    @navBarHeight: 130px;
}
.appearanceBlack {
    @navBarHeight: 70px;
}

这样,稍后在 .less 中,我提出了如下类:

#navBar {
    height: @navBarHeight;

    // appearance handling
    .appearanceBlack & {
        background-color: black;
    }
    .appearanceWhite & {
        background-color: white;
    }
}

当然,实际情况如果更复杂的话。

是否可以根据外观 CSS 类定义(或重新定义)较少的变量?


这完全取决于主题之间有多少样式和变量不同,例如(非常)基本的起点可能类似于:


@themes:
    blue   rgb( 41, 128, 185),
    marine rgb( 22, 160, 133),
    green  rgb( 39, 174,  96),
    orange rgb(211,  84,   0),
    red    rgb(192,  57,  43),
    purple rgb(142,  68, 173);

// usage:

#navBar {
    .themed(background-color);
}

// implementation:

@import "for";

.themed(@property) {
    .for(@themes); .-each(@theme) {
        @name:  extract(@theme, 1);
        @color: extract(@theme, 2);

        .theme-@{name} & {
            @{property}: @color;
        }
    }
}
  

然后像这样的事情模式匹配, 规则集参数等等,您可以自动生成任何复杂的外观/主题层次结构......

例如,几乎相同的简单示例,但具有更多可定制的方法:

// usage:

#navBar {
    .themed({
        color:            @fore-color;
        background-color: @back-color;
    });
}

// themes:

.theme(@name: green) {
    @fore-color: green;
    @back-color: spin(@fore-color, 180);
    .apply();
}

.theme(@name: blue) {
    @fore-color: blue;
    @back-color: (#fff - @fore-color);
    .apply();
}

.theme(@name: black-and-white) {
    @fore-color: black;
    @back-color: white;
    .apply();
}

// etc.

// implementation:

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

如何在 lesscss 中进行主题化 的相关文章

  • 阻止内容因 Bootstrap 中的重叠而被下推

    In a 上一个问题 https stackoverflow com questions 22293227 make an element overlap contents below it using bootstrap 22293428
  • PowerShell,如何增加变量名称?

    我目前正在编写一个解析 XML 文件的 PowerShell 脚本 它将一些解析的值保存为变量以供以后使用 例如 假设我的 XML 如下所示
  • 查找第一个可滚动父级

    我遇到这种情况 需要将元素滚动到视口中 问题是我不知道哪个元素是可滚动的 例如 在纵向中 主体是可滚动的 而在横向中 它是另一个元素 还有更多情况会更改可滚动元素 现在的问题是 给定一个需要滚动到视口中的元素 找到其第一个可滚动父元素的最佳
  • 避免滚轮被嵌入的 youtube / flash 视频劫持

    我正在对主页中嵌入 YouTube 视频的网站进行一些改进 我自己没有添加此代码 但它看起来像
  • 如何减少 jQuery 函数中使用的子级数量?

    我觉得我必须使用太多 children 在我的一些 jQuery 函数中 这是我的 HTML div class goal small container div class goal content div class goal row
  • 是否可以对 Flexbox 插入、删除和项目位置进行动画处理?

    这个问题最初是在 2012 年提出的 https stackoverflow com questions 11106876 is it possible to animate flexbox inserts removes但是提供的答案并未
  • 当CSS文件存在时,无法在服务器上找到它们[关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 当运行本地服务器时 这一切都运行良好 我有 header html 其中包含以下代码 在 public html 目录 与 header h
  • Bootstrap中.row类的负左右边距

    只是出于好奇 为什么 bootstrap 使用 15px左和右margins 将取消15px左和右padding on container and container fluid类 为什么要设置内边距 然后在子项上使用负边距取消它 行上的负
  • strings.xml 中的 Android 变量

    我在某处读到如何在 XML 文档中使用变量 他们说这很简单 我想也是如此 我在 Android strings xml 文件中成功地使用了它 我一整天都这样使用它 直到突然 android 停止解析它并停止将它视为变量 我这样使用它
  • Twitter Bootstrap 上的插入符号是如何构建的?

    这更多的是一个好奇问题 而不是我真正需要知道的事情 在本页面 http twitter github com bootstrap components html buttonDropdowns http twitter github com
  • 简化 CSS 代码

    我怎样才能简化这段代码 user panel subscribe user panel faves user panel tags user panel title user panel calendar a user panel item
  • Cloud9 IDE 本地主题

    Cloud9 IDE 文档说您可以导入 Textmate 主题 但我不明白 有人可以逐步解释我如何做到这一点吗 顺便说一句 我正在尝试将主题包含在我的本地主机上 我找到了这个链接 但我还是不明白 https groups google co
  • 相对于变换元素的绝对定位元素位置

    我重新创建了我在模板中遇到的问题 有一个nav具有position relative 在 的里面nav有一个div有两个嵌套列表 其中一个列表的位置绝对固定在列表的底部nav 当div对其应用了变换 当 的时候div在绝对和相对定位的元素之
  • 如何检查元素的内容是否为空,如果是,则在 jquery 中删除该元素

    我目前正在尝试选择某个 div 内没有内容的任何 h2 元素并将其删除 这是我的 html 代码 div class skipToContainer h2 class vidSkipTo Hello h2 h2 class vidSkipT
  • 有没有办法在 html 图像标签中显示位图数据? [复制]

    这个问题在这里已经有答案了 有没有办法在 HTML 元素中显示位图图像数据 例如 您有一个指向源文件的常规图像 如下所示 img src myImage png width 100 height 100 有没有这样的事情 img width
  • Symfony 2 使用 CSS 设置背景图片

    I want to put a background image for a menu in symfony But I can t figure out how to do it I managed to style a lot of t
  • 由于固定导航,增加了 FancyBox v2 的顶部和底部边距

    我目前正在开发一个网站 该网站将来将具有响应能力 该网站主要由图像组成 单击这些图像会加载到 FancyBox 中 FancyBox v2 现在具有响应能力 因此可以在屏幕尺寸发生变化时重新调整图像等的大小 作为我设计的一部分 我有两个固定
  • 显示班级图片 10 秒

    我有下面给出的代码显示9 boxes 其值如下digital time 还有一个班级box002显示digits相当于随机选择的九个盒子的值 box002 can be dragged to digital time starting wi
  • 如何更改 Shiny 中 navbarPage 折叠的断点

    我想用shiny navbarPage collapsible TRUE 当在小屏幕上查看我的 Shiny 应用程序时 将导航元素折叠到菜单中 默认情况下 当浏览器宽度小于 940 像素时会触发折叠 有什么方法可以改变这一点 以便在稍大的浏
  • CSS:缩放字体大小以适应父块元素的高度

    我发现的几乎每个问题和答案都谈到了视口大小 这确实不是我的问题 拿着这支笔 https codepen io njt1982 pen pZjZNM https codepen io njt1982 pen pZjZNM 我有一个非常基本的

随机推荐

  • 具有功能更新的数组最有效的实现是什么?

    我需要一个具有尽可能快的功能更新的类似数组的数据结构 我见过一些不同的灵活数组实现 它们为我提供了此属性 Braun 随机访问列表 但我想知道是否有一个实现专门针对我们对追加或前置不感兴趣的情况进行优化 只是更新 让 克里斯托夫 菲利亚特
  • 使用 SWIG 将 C++ char* 转换为 Java 中的 char[] 而不是 String

    我正在尝试用 Java 包装以下 C 函数 char MyClass to cstring 该函数的输出作为 Java String 对象返回 我希望它作为char Java 数组 我目前正在使用 typemaps i 和 std stri
  • 缩进中制表符和空格的使用不一致[重复]

    这个问题在这里已经有答案了 def contains sequence dna1 dna2 str str gt bool Return True if and only if DNA sequence dna2 occurs in the
  • 在x86 8086汇编中生成0-9范围内的随机数

    首先 我对 8086 Assembly 非常陌生 掌握知识对我来说相当困难 尽管如此 我还是会尽力而为 我一直在尝试编写一个代码来生成0 9范围内的随机数 在研究了几个例子和建议之后 这就是我的结论 为了简单起见 我没有对检索到的时钟计数应
  • 如何将新数据附加到新行

    我的代码如下所示 def storescores hs open hst txt a hs write name hs close 所以如果我运行它并输入 Ryan 然后再次运行并输入 Bob 文件 hst txt 看起来像 RyanBob
  • 使用不同版本的 JDK 以及相同的目标和源版本编译 Java 是否可以保证相同的执行?

    我们将把创建构建的 CI 系统从 Java 7 更新到 Java 8 稍后我们希望将项目一一迁移到 Java 8 当然 我们希望能够为仍然使用 Java 7 的旧版本创建错误修复版本 如果我们将构建相同的源 目标版本和源版本从 JDK 7
  • 在Asp.net core中间件中访问ModelState

    我需要访问ModelState在 Asp net Core 2 1 中间件中 但这只能从Controller 例如我有ResponseFormatterMiddleware在这个中间件中我需要忽略ModelState错误并在 响应消息 中显
  • 有没有办法区分 GUID 和随机数?

    在调试模糊的代码缺陷时 能够将 GUID 与随机数据区分开来非常有用 在 Windows 上 生成的每个 GUID 都是版本 4 因此它的第三部分的前半字节为 4 因此 如果 16 字节序列违反了该规则 那么它就不是版本 4 GUID 例如
  • 在 Scala 中使用“valcapacity:Int”而不是“val IntCapacity”的任何原因

    我正在读 Scala 我想知道 Why val capacity Int 代替 val Int capacity 做出这个选择的任何原因 如果不是 在我看来 放弃 Java 的声明方式似乎不是一个好的选择 会使从 Java 到 Scala
  • 如何将单个故事板 uiviewcontroller 用于多个子类

    假设我有一个故事板 其中包含UINavigationController作为初始视图控制器 它的根视图控制器是UITableViewController 即BasicViewController 它有IBAction连接到导航栏的右侧导航按
  • 我可以将所有标准 Python 库与 IronPython 一起使用吗?

    它需要某种包装吗 我当时认为 IronPython 是 Python 的 NET 实现 它以某种方式神奇地使使用 IronPython 构建的应用程序能够使用标准 Python 库 我相信它是原始 py 源或打包到鸡蛋中的 py 源 但是当
  • 将 Node crypto aes-256-cbc 转换为 CryptoJS

    如何转换以下Node的内置加密模块加密 to CryptoJS const crypto require crypto const pass some password with gt spec chars const cipher1 cr
  • 鼠标点击触发shift

    我可以触发点击事件element selector using trigger element selector trigger click Is it possible to trigger shift click I mean shif
  • 有哪些技术可用于发送短信? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 我正在考虑向订阅用户列表发送定期自动短信 在使用过 Windows Mobile 设备后 我可以使用紧凑的 Net 框架 连接到 USB 的设备轻松
  • InputConnection.finishCompositingText() 方法中的空指针异常[重复]

    这个问题在这里已经有答案了 我在 inputmethod InputConnection finishCompositingText 中收到 NPE 日志消息如下 java lang NullPointerException Attempt
  • 动态应用内购买

    这个问题 Android 应用内计费动态产品列表 是在 3 年前被问到的 Android 仍然无法使用动态应用内购买项目吗 我希望实现此类功能的原因是因为我的应用程序提供了一种让某些用户创建自己的应用程序内购买以供其他人购买的方法 似乎另一
  • 为什么在向量循环中使用“!=”比使用“<”更好?(C++)

    为什么在向量循环中使用 比使用 因为您正在使用迭代器 并且它会使循环看起来与其他容器完全相同 所以您是否应该选择切换到其他容器类型 例如 set list unordered set 等 其中
  • 用递归解决动态嵌套for循环

    我试图得到如下所示的结果 Miniors Boys 54kg 62kg其中每个值均由管道 分隔来自包含某种 限制类型 的数组 例如 ageGroups genders weightClasses 如上所示 我现在能够得到这个结果的方法是 如
  • Java 9中如何让自动模块找到自己的资源?

    我试图让我的应用程序与 Java 9 一起运行 但不幸的是 当它尝试使用以下命令加载资源时 它是普通的 jar 依赖项之一 classLoader getResource name 得到一个空值 当然 这在 Java 8 中是有效的 我使用
  • 如何在 lesscss 中进行主题化

    当我处于开发应用程序的预生产周期时 我经常改变视觉效果 以便与客户验证的内容保持一致 保留同一页面的一些视觉效果 称为主题 会很有趣 以便我可以将它们快速呈现给客户 我发现的方法是创建一个放在主体上的外观类 通过更改它 我可以相应地更改页面