Web 技术研究所

我一直坚信着,Web 将会成为未来应用程序的主流

始于 CSS 风格的一些纠结点

  什么样的 CSS 写法才是最优秀的呢?其实这个问题本身就有问题,因为「优秀」这个词太主观了。或者我应该问什么样的项目适合什么样的 CSS 风格才对。虽然之前整理过一篇「模块化的 CSS 命名规则」,但一些结构级的东西还是无法确定下来。

  我以前写 CSS 的时候总是抱着 Write Less Do More 的心态,把代码量降到最低。所以写出来的代码经常被吐槽是压缩过的,甚至有时比压缩工具还凶残。现在做的项目由于别人经常要动我的代码,所以就正常地写,可是依然有个难以释怀的点。

简洁型

  以前我会尽量少地使用 class,大量使用子类选择器和标签选择器。这可以让 HTML 看上去非常整洁,也给服务器节省了不少流量。可是这种模式的问题是 HTML 结构一旦改变就需要调整 CSS,会带来额外的维护成本。或者过度依赖标签选择器的话改个标签也要调整 CSS,比如原本一个不需要超链接的地方突然增加了连接的需求就会出现这种情况。或者更丧心病狂的是依赖属性选择器(我还没疯狂到这种程度),那么属性一旦需要修改也得动 CSS 部分。总之这种模式虽然可以让 HTML 减小,但维护成本总是会很高。

灵活型

  如果要让 HTML 修改变得灵活就需要使用更多的 class。如果给元素都加上 class,无论元素的嵌套关系和属性,它都可以应用上正确的样式,这样就可以避免 HTML 对 CSS 的联动修改问题。但这种做法就会让 HTML 变得很大,增加传输成本。

更深层的纠结点

  上面纠结的联动修改问题和传输成本问题其实都是小问题,有个更大的问题需要解决!简洁型不够语义化,而灵活型的需要花时间思考命名。语义化不足会导致维护成本大大提升,而且更容易出错。而需要命名问题则会导致开发效率降低,因为需要花大量时间想名字(我就是典型的会花半天时间想一个变量名命名的人),或者如果偷懒随便用个名字那就重新回到了缺乏语义化的状态上。
  其实最终的纠结点应该是「语义化」与「命名成本」的问题。当年做电商的时候直接找了一份「会计英语词汇大全」来作参考也没能彻底解决问题。也许这个矛盾才是所有坑的根源,有没有办法解决呢?

网名:
34.203.213.*
电子邮箱:
仅用于接收通知
提交 悄悄的告诉你,Ctrl+Enter 可以提交哦
神奇海螺
[查看全部主题]
各类Web技术问题讨论区
发起新主题
本模块采用即时聊天邮件通知的模式
让钛合金F5成为历史吧!
次碳酸钴的技术博客,文章原创,转载请保留原文链接 ^_^