less给网站换肤

网页换肤的N种方案 原文demo链接地址 网页换肤的N种方案 最近在做网站换肤的需求,也就是主题切换。那么如何切换主题的颜色呢?以下是网站换肤的实现以及基于换肤拓展的一些方案分享给大家,希望大家在做类似需求的时候能够有些参考。 覆盖样式实现 // light $color-brand1: #ffcd32; $fill-1: #fff !default; $color-text: #3c3c3c; $c... 阅读详情

LESSCSS是一种动态样式语言,属于CSS预处理语言的一种,它使用类似CSS的语法,为CSS的赋予了动态语言的特性,如变量、继承、运算、函数等,更方便CSS的编写和维护。

LESSCSS可以在多种语言、环境中使用,包括浏览器端、桌面客户端、服务端。

根据less可以预处理css语言的这一特性,就可以想到less可以实现一种功能,即“换肤”功能。


我最近做的网站就需要“换肤”功能,那当然我就采取less咯。
我主要就用到了less中的部分语法,变量以及一些函数
想要了解更多可以查看http://www.1024i.com/demo/less/index.html
简单介绍less用法以及使用:

  1. 变量
@background: #e2e9f9;
 #top {
     background: @background;
 }
 编译为:
 #top {
    background: #e2e9f9;
 }

2.嵌套规则

 @color:red;
 @fontSize:12px;
 #top {
     color: @color;
     h1 {
        font-size: @fontSize;
    }
 }
 编译为:
 #top {
     color: red;
 }
 #top h1 {
     font-size: 12px;
 }

3 . 运算
任何数字、颜色或者变量都可以参与运算.

@base: 5%;
@filler: @base * 2;
@other: @base + @filler;

color: #888 / 4;
background-color: @base-color + #111;
height: 100% / 2 + @filler;

4.混合

.rounded-corners (@radius: 5px) {
    -webkit-border-radius: @radius;
    -moz-border-radius: @radius;
    -ms-border-radius: @radius;
    -o-border-radius: @radius;
    border-radius: @radius;
}

#header {
    .rounded-corners;
}
编译为:
#header {
    -webkit-border-radius: 5px;
    -moz-border-radius: 5px;
    -ms-border-radius: 5px;
    -o-border-radius: 5px;
    border-radius: 5px;
}

5.函数
Less 内置了多种函数用于转换颜色、处理字符串、算术运算等

@the-border: 1px;
@base-color: #111;
@red:        #842210;

#header {
    color: (@base-color * 3);
    border-left: @the-border;
    border-right: (@the-border * 2);
}
#footer {
    color: (@base-color + #003300);
    border-color: desaturate(@red, 10%);//降低一定数值的颜色饱和度。
}
编译为:
#header {
    color: #333;
    border-left: 1px;
    border-right: 2px;
}
#footer {
    color: #114411;
    border-color: #7d2717;
}

一些颜色运算:
saturate(@color, 10%);  //增加一定数值的颜色饱和度。
desaturate(@red, 10%);  //降低一定数值的颜色饱和度。
lighten(@color, 10%);   //增加一定数值的颜色亮度。
darken(@color, 10%);    //降低一定数值的颜色亮度。
fadein(@color, 10%);    //降低颜色的透明度(或增加不透明度)
adeout(@color, 10%);    //增加颜色的透明度(或降低不透明度)
ade(@color, 50%);   //给颜色(包括不透明的颜色)设定一定数值的透明度。

下面主要介绍我是如何利用less给网站换肤的

  1. 编写less库,取名为xxx.less
    主要是改变背景色和字体颜色,把需要改变的元素都提取出来,写成一个函数,方便调用,定义背景色和字体颜色两个变量,变量分别有一个默认值。
@charset 'utf-8';
.change(@background: #e2e9f9,@color: #337ab7){

        background: @background;
        #daohang/* ,#ul */ {
            background: @background;
        }
        #ul li a:hover{
            color:saturate(@color,20%);
        }
        #column h3  {
            color: @color;
            & span {
                color: @color;
            }
        }
        .top{
            color: @color;
            border-top-color: @color;
            & .btn{
                background: @color;
            }
        }
        #contentList ul li span,.moreBtn {
            background: @color ;
        }
        .titleH2,.back{
            background: fadeout(@color,30%);
        }
        .footer{
            background: darken(@color, 10%);
        }
}

2.设置几个皮肤样式,存储成xxx.less文件
在开始引入库文件,语法为import url(xxx.less),然后分别给不同的皮肤设置不同的颜色,调用change函数,第一个参数是背景色,第二个参数是字体颜色,style是要给body添加的类名,根据后台传过来的皮肤类型,调用相应的class属性,皮肤类型用0,1,2…表示,所以给bodyclass类添加相应的名称style0,style1,style2…

@charset "utf-8";
@import url(xxx.less);
.style0{
    .change();  //默认  经典蓝
}
.style1{
    .change(#f5e2c9,#9f754d);   //咖啡棕
}
.style2{
    .change(#e5d3ed,#b88bcb); //紫色
}
document.body.className='style'+datas.skin;//datas.skin表示获取的皮肤类型

代码部分就是这些,当然还差引入文件的步骤,在head里面引入设置皮肤的.less文件,然后还需引入编译less的js文件,点击下载less.js
注意:less.js文件一定要放在你写的.less文件下面,并且.less的type类型是type=”text/less”

当然这种方法是在线编译成css,所以可能性能不是很好,一可以先编译成css文件放入到项目中再发布,这样只需在head标签内引入css文件即可.

好了,这些步骤进行完了,换肤的功能也就大概就实现了,想要性能更好一些可以把皮肤存入缓存,下一篇将介绍H5的本地存储功能。

CSS 换肤实现 一、换肤原理网页换肤的基本原理:使用 JS 切换对应的 CSS 样式表。例如导航网站 Hao123 的右上方就有网页换肤功能。除了切换 CSS 样式表文件之外,通常的网页换肤还需要通过 Cookie或者H5的session技术 来记录用户之前更换过的皮肤,这样下次用户访问的时候,就可以自动使用上次用户配置的选项。工作流程就出来了:访问网页——JS 读取 Cookie || session ——如果... 阅读详情

相关推荐

使用vue + less 实现简单换肤功能的示例

下面小编就为大家分享一篇使用vue + less 实现简单换肤功能的示例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

vue + less 实现动态主题换肤功能

vue + less 实现动态主题换肤功能

weixin_44784401的博客 3944

从Gotham到Foundry:拆解Palantir三大产品线,看它如何用‘本体’统一企业数据与AI

本文深入解析Palantir的三大产品线Gotham、Foundry和Apollo,揭示其如何通过独特的'本体'架构实现企业数据与AI的无缝融合。从国防情报到商业决策,Palantir的产品架构展现了强大的数据整合与AI赋能能力,为企业构建数字孪生提供革命性解决方案。

weixin_30823001的博客 321

前端实现动态切换主题色-使用 css/less 动态更换主题颜色(换肤功能)或通过单击更改背景颜色

但需要注意的是,在移动设备上的浏览器或各Native App用到的WebView里,localStorage都是不可靠的,可能会因为各种原因(比如说退出App、网络切换、内存不足等原因)被清空。2、需要的话对一些字体图标的定义要跟ui和pd沟通好,构建好对应的iconfont工程,方便使用,因为你要清楚如果单纯使用图片,那切换主题色,变量定义就会很繁琐,一句话怎么方便怎么好维护就怎么来;这里是定义的结构体,仅作参考(你可以根据自己项目的框架使用对应的组件都是ok的,没啥特殊要求)

Achong999的博客 2912

C# NX二次开发:两种过滤器设置方案的实战解析与场景适配

本文深入解析C# NX二次开发中的两种过滤器设置方案:AddFilterHandler回调与MaskTriple属性设置。通过实战案例对比其性能差异与适用场景,帮助开发者根据需求选择最优方案,提升NX插件开发效率与交互体验。特别针对BlockStyler集成场景提供专业建议,是NX二次开发者的实用指南。

weixin_33739646的博客 844

SAP Gateway Foundation OData V4 服务管理深度解析,从 Service Repository 到 Service Group 的完整运行逻辑

本文解析了SAP S/4HANA中OData V4 API的技术架构,重点阐述Service Repository、Service与Service Group的三层管理体系。以SalesOrder和PurchaseOrder API为例,说明不同服务可能属于特定repository(如srvd_a2x)而非默认DEFAULT库。Service Group作为业务模型组合单元,支持跨服务引用和统一配置,其发布状态直接影响服务可用性。文中对比了后台管理事务/IWBEP/V4_ADMIN与网关端/IWFND/V4

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 87

vue + less 自定义换肤

效果展示 基本原理 目前常见的换肤方案无非几种: 通过class选择器/id选择器选中需要更换的DOM,直接修改颜色 书写多套css,通过js进行css的切换 使用modifyVars()方法,修改less.js中相应的less变量更换颜色 在这里提供一种新知晓的换肤开发方案方案分享一下: 使用less,将其中的颜色提升到全局,各自组件/页面引用‘顶级’颜色,通过js修改顶级颜色达到各模块换肤的目的。 开发过程 安装及配置 npm install style-resources-loader -D n

李剑一 2391

人工智能在软件测试中的广泛应用领域

人工智能在软件测试中的应用领域涵盖了自动化测试、缺陷预测和缺陷检测、智能化测试报告生成等方面。以上提供的示例代码只是其中的一小部分,实际上,人工智能在软件测试中还有许多其他的应用。通过结合人工智能和软件测试,可以提高测试效率和质量,减少测试工作的人力成本,并帮助开发人员更好地理解和改进软件产品。人工智能(Artificial Intelligence,简称AI)在软件测试领域的应用越来越广泛。下面将介绍几个人工智能在软件测试中的主要应用领域,并提供一些相关的源代码示例。

FycPerformance的博客 462

less合集(二):动态修改主题颜色一键换肤

需求背景: 1:在需求中,一个平台样式风格基本保持统一;因而需设置一个全局样式配置 2:有时需要可以根据后端数据返回,动态修改主题颜色 方式一 适用技术:css,less,sass等 适用场景:颜色种类不固定的场景 1:在index.html文件中增加配置 <script> window.onload = () => { // 设置主题色 // --buttonColor是自定义的按钮背景样式代号 // 可动态修改,eg:由后端返回接受,可由前端事件修改.

hyduan_h5的博客 5801

教你如何阅读Autosar代码(6):常量变量定义

编译器抽象应该为常量的声明和定义定义CONST宏。编译器抽象应该定义VAR宏来声明和定义变量。memclass:常量本身的分类;memclass:变量本身的分类;vartype:变量的类型;type:常量的类型;

wdconan001的博客 958

【异常】OpenClaw对接钉钉/飞书配对成功但无响应 全流程排查指南(适配阿里轻量服务器+OpenClaw)

下面按「先快速定位根因→通用核心排查→平台专属排查→兜底方案」的顺序,一步步解决,新手也能跟着操作。

奶爸的编程之路,也就一周冷个三天 696

【Web技术】748- 总结前端换肤的 N 种方案

作者:令夕原文链接:https://juejin.im/post/5e92ad7a518825736c5b91cd最近在做网站换肤的需求,也就是主题切换。那么如何切换主题的颜色呢?以下是...

pingan8787 627

PCL 点云圆柱形邻域搜索【2026最新版】

圆柱形邻域搜索是KD-tree算法在点云数据处理中的扩展应用,在一些特定场景应用中具有无与伦比的优势。博客长期更新,本文最近一次更新时间为:2026年5月4日。

点云侠的博客 3450

根据域名实现前端主题换肤的解决方案

大致思路:根据域名去选择加载哪一个css文件,,先定义主题variable.less供模块中引用,使用less变量覆盖的形式,实现换肤。 1. variable.less 2. index.js 3. office.less 4. 模块中的使用 转载于:https://www.cnblogs.com/Lewiskycc/p/7738783.html...

banqiaoxian4609的博客 282

DFI协议时序

参数名称典型值应用场景关键影响tcmd_lat1-2个时钟周期命令与地址锁存同步地址错误风险tphy_wrlat1-2个时钟周期写操作响应速度写带宽与延迟2-3个时钟周期写操作端到端延迟系统吞吐量1-2个时钟周期连续写命令间隔信号干扰与资源冲突tphy_rdlat1-2个时钟周期读操作响应速度读带宽与延迟trddata_en由CL决定(如0.41 ns)读数据返回时间系统延迟10-20 ps写数据与命令对齐数据丢失风险<1 µs低功耗模式切换。

qq_43134430的博客 5103

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

总结前端换肤的 N 种方案

最近在做网站换肤的需求,也就是主题切换。那么如何切换主题的颜色呢?以下是网站换肤的实现以及基于换肤拓展的一些方案分享给大家,希望大家在做类似需求的时候能够有些参考

weixin_42424283的博客 930

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

ajax换肤,聊一聊前端换肤

之前在做网站换肤,所以今天想聊聊网站换肤的实现。网页换肤就是修改颜色值,因此重点就在于怎么来替换。一般实现如上图,我们会看到在某些网站的右上角会出现这么几个颜色块,点击不同的颜色块,网站的整体颜色就被替换了。要实现它,我们考虑最简单的方式:点击不同的按钮切换不同的样式表 ,如:theme-green.csstheme-red.csstheme-yellow.css可以看出,我们需要为每个颜色块编写...

weixin_34237703的博客 318

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

HTML如何表现网站主题,html – 如何使用LESS来管理多个网站主题

有一种更灵活的方式,但你需要WinLess(也许它可以用其他东西,我只是发现这是为了满足我的需要),这需要Windows.如果您搜索,其他操作系统应该有类似的东西.我所做的是,在我的项目的CSS或Stylesheet文件夹中,我创建了另一个名为LessBase的文件夹.在这里,我保留核心样式表.例:-Stylesheets-LessBase->jquery-ui.less->forms...

weixin_34847099的博客 193

Vue.js 换肤

思路: Less / Sass / Stylus ,定义多种皮肤对应的方法,点击皮肤颜色,切换最外层 div#app 的 class,来实现换肤。 App.vue  &lt;template&gt; &lt;div id="app" :class="currentSkin"&gt; &lt;h1&gt;title&lt;/h1&gt; &lt;div class=&quo

sinat_36539161的博客 606

vue自定义主题皮肤方案

vue自定义主题皮肤方案

aBingNa的博客 1112

前端换肤的一些思考

先看看大家怎么做的。下面是两篇别人写的文章,最后是我自己的方法。 第一篇:聊一聊前端换肤 之前在做网站换肤,所以想谈谈网站换肤的实现。网页换肤就是修改颜色值,因此重点就在于怎么来替换。 一般实现 如上图,我们会看到在某些网站的右上角会出现这么几个颜色块,点击不同的颜色块,网站的整体颜色就被替换了。要实现它,我们考虑最简单的方式:点击不同的按钮切换不同的样式表 ,如: ...

魔侠的沙滩 2165

Path of Building PoE2 完整教程:从天赋树规划到伤害计算,快速构建第一个BD

做流放之路2的BD,最容易卡住人的是三个环节:天赋树点下去之前不知道收益、换装升级值不值得出手、技能伤害到底能到多少。Path of Building PoE2 是一款 Path of Exile 2(流放之路2)的离线 build 规划工具,把这三件事都放在了同一个界面里:点节点、加装备、换技能,伤害和生存数值立刻重新计算。接下来这份指南带你从安装走到第一个可分享的BD。 ## 🧩 它到底是

gitblog_00332的博客 1056

vue+iview+less 实现一键换肤

1. 准备两个less文件: 1.1 theme.less 用于定义控制样式的函数 .theme( @Background: #1D2B40, @Border: #000017, ){ .header{ background: @Background; border-bottom: 1px solid @Border; } } 2.2 colo...

HuangsTing的博客 1586

基于less实现换肤

themes -skins --dark.less --white.less 对应皮肤的less变量   -with-skins.less 定义less函数 .with-skins(@rules){ :global(.skin-dark){@import (multiple) "./skins/dark.less";@rules();} :global(.skin-white){@...

weixin_41979428的博客 1511

前端换肤的N种方案,请收下

茶已备好,只待君来!感谢关注前端点线面(>‿<),本号定期推荐原创深度好文,帮助每一位在前端领域打拼的伙伴们走向前列,此外关注我获取最前沿知识点、海量学习资料、《前端百题斩...

wang_yu_shun的博客 2461
上一篇: 移动端js弹出层滚动的时候 body层不可滚动的解决办法
下一篇: H5的本地存储功能
张静蕾
博客等级 码龄11年 13粉丝 15原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值