在网站开发中,经常有皮肤或者主题切换的功能,比如discuz、wordpress等,只要选择了哪个主题,然后就可以切换到对应的样式中,请问背后的实现原理和逻辑是什么,具体用代码时怎么实现的?(在google和百度上搜了一圈没找打好的相关技术文章,来这里找小伙伴们帮忙解答下疑惑。谢了)
2 回答
慕妹3146593
TA贡献1820条经验 获得超9个赞
有两种一种就是上边说的,切换css,html结构不变。第二种就是切换目录,一般都是定义一个目录为主题的根目录,子目录就是各种不同的主题,然后通过定义常量或者配置数组或者存到数据库,然后切换不同的目录名称就可以达到切换主题的目的具体实现代码define('THEME','default');//定义当前使用主题functionrender($file,$vars=[]){extract($vars);ob_start();includeROOT.'/themes/'.THEME.'/'.$file;returnob_get_clean();}
有只小跳蛙
TA贡献1824条经验 获得超8个赞
换肤的实现一般是将颜色和背景相关的样式抽取出来,放到单独的样式表。换肤的时候,切换样式表即可。样式表的切换其实是非常简单的,麻烦的是如何去规划你的样式表,当你把皮肤样式抽取后,整个css样式依然还非常清晰,逻辑合理,这就需要比较深厚的css重构功底。
添加回答
举报
0/150
提交
取消