主题 CSS 怎么组织:一个文件写完还是拆成模块,我们的取舍
单文件 CSS 写到 3000 行以后,找一条规则要看半天。但拆成十几个文件,请求数又上去了。 先说结论。 开发时拆,上线后合并。 拆的粒度按「页面区域」而不是按「技术职责」。别搞 base/layout/component/util
以下是带有「zblog主题」标签的全部文章
单文件 CSS 写到 3000 行以后,找一条规则要看半天。但拆成十几个文件,请求数又上去了。 先说结论。 开发时拆,上线后合并。 拆的粒度按「页面区域」而不是按「技术职责」。别搞 base/layout/component/util
主题和插件同时改同一块区域,结果就是一团乱。 先分清谁在改。 插件挂的钩子一般比主题晚执行——主题在 Filter_Plugin_Zbp_Load 里注册,插件在插件加载阶段注册,顺序取决于「插件管理」里的排序,以及主题和插件谁先被 i
改一行 CSS,刷新,没变。再刷,还没变。这时候先别怀疑代码。 三层缓存,从后往前查。 第一层,浏览器。强刷是 Ctrl+F5,Mac 上 Cmd+Shift+R。不确定的话,直接开无痕窗口最省事。 第二层,CDN 或反向代理。站上要
搜索页看着简单,出问题的地方特别多。 基本结构。 search.php 里,$zbp->search 拿当前搜索词,$zbp->GetArticleList 那个搜索,或者更常见的是直接遍历 $articles。参数里的 'search
导航看着简单,是最容易出兼容问题的地方。 数据从哪来。 $zbp->modules 里 FileName 为 navbar 的那个模块,GetList() 拿到的是一串现成的 。 但多数主题不用这个。为什么?因为拿到的是一整串
暗色模式不难,难的是闪白。 先说结构。别写两套样式表,用 CSS 变量。 在 :root 里定义一套亮色变量,比如 --bg、--text、--border、--card。然后 html.dark 里把这几个变量覆盖成暗色值。所有组件只
评论模板是主题里最容易被忽略的。多数人抄一份 comment.php,能用就不再看了。真改起来,坑不少。 先搞清数据层。 评论不是一次全取回来的。$article->Comments 只含一级(或已展开的部分),回复靠 $comment
很多人改主题卡在侧栏。模板里写着 {foreach $sidebar as $module},但不知道这个 $sidebar 从哪来、里面装了什么。 它是 $zbp->modules 按 SidebarID 筛出来的 Module 数组。
打开一个别人写的主题,header.php 里往往堆了十几行 meta。有些是必须的,有些纯属历史包袱。我按顺序说。 必须有的三个。charset 放第一行,越靠前越好,浏览器拿到前 1024 字节就要判断编码。viewport 决定移动