如何对一个博客系统进行CSS管理?
2009-11-10 19:56 Jeffrey Zhao 阅读(17534) 评论(36) 编辑 收藏 举报忽然发现,我的博客皮肤又改变了,这次是About栏:

如果您和我博客右侧的内容相比,会发现行间距首行文字略有下沉,且段落之间的间距变小了,导致“希望”一段跑到了照片的右侧,进而照片与下方文字的间距也加大了。
我在博客版式上投入了很大的精力,动用了大量的JavaScript和自定义CSS,希望可以让浏览效果更加“和谐”。可是,博客园在样式管理上似乎经常会出现一些问题,时不时让一些基础的样式修改破坏了版式。对于大部分朋友来说,可能不很在乎一个版式的缩进、行间距是否对齐等等。但是对我来说,一些细节上的破坏就会让我觉得有些不舒服。那么这次到底又发生了什么呢?幸好我在TechEd的示例中保存了一周前的CSS文件,于是再用Fiddler抓取新的CSS文件后使用WinDiff进行对比,终于发现罪魁祸首是common2.css文件。
在一周前的common2.css文件中,有个定义是:
p { margin: 0 auto 10px auto; text-indent:0px; }
而在现在的common2.css文件中,这个定义变成了:
p { margin: 5px auto 5px auto; text-indent:0px; }
既然知道了原因,那么我只要加一行自定义样式便把效果修补回来了:
div#about_body p { margin: 0 auto 10px auto; }
那么,为什么这样的事情总是一而再,再而三地发生呢?这无法不让我多想一些。似乎这次的问题是由两方面原因造成的:
- 博客园修改了过于宽泛的选择器:p是个非常基础的CSS选择器,涉及到整个页面的p元素,对他进行修改就好比改变了类库中的基本类型。对于这样的修改一定要小心,因为影响过于巨大,试想如果.NET修改了Object类的行为那么会造成什么后果呢?
- 皮肤的样式直接依赖了最基础的样式:如果说上一点是主要因素,那么这一点就是次要因素。由于about区域的文字直接依赖于基本上“毫无关联”的基础样式,导致了一些难以预料的事情发生。因此,最终的解决方案也是使用了限制更优先的选择器来覆盖基础样式。
多皮肤的博客样式管理是一件麻烦的事情,它涉及了继承,覆盖等多种因素。我对于CSS的使用不是非常了解,也没有干过如此有技术要求的项目。园子里的CSS专家不少,不妨趁此机会来讨论一下该如何为这样的“多主题”系统设计CSS的管理方式呢?
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· 展开说说关于C#中ORM框架的用法!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
2007-11-10 在网页里添加Web Live Messenger对话框
2006-11-10 深入Atlas系列:探究序列化与反序列化能力(下) - JavaScriptSerializer