For investors
股价:
5.36 美元 %For investors
股价:
5.36 美元 %认真做教育 专心促就业
css架构是我们在进行网页开发的时候需要使用的重要编程代码之一,而今天我们就一起来了解一下,一个好的css架构都应该具有哪些特点,下面就开始今天的主要内容吧。
我认为好的CSS架构的目标应该与所有好的软件开发的目标没有太大的区别。我希望我的CSS是可预测的、可重用的、可维护的和可扩展的。
可被预测
可预测的CSS意思是您的规则能按照您预想的方式运行。当您添加或更新一个规则时,它不应该影响您的站点中您不想影响的部分。在很少改变的小站点上,这并不重要,但在有数十或数百个页面的大站点上,可预测的CSS是必须的。
可复用
CSS规则应该足够抽象和可被解耦的,您不必对已经解决的模式和问题进行重新编码,可以依靠现有的部分快速构建新的组件。
可维护
当您的站点需要添加、更新或重新安排新的组件和特性时,这样做不需要重构现有的CSS。向页面中添加某组件甲不应该破坏某组件乙。
可扩展
随着站点的规模和复杂性的增长,通常需要更多的开发人员来维护。可扩展的CSS意味着它可以由一个人或一个大型工程团队轻松管理。这也意味着您的站点的CSS架构不需要大量的学习曲线就可以轻松学习掌握。不能因为您是目前维护CSS的开发人员,就不考虑以后的变化。
常见的糟糕实践
在我们寻找如何实现好的CSS体系结构目标的方法之前,我认为看看妨碍我们实现目标的常见实践是有帮助的。只有通过了解那些不断重复的错误,我们才能开始接受另一种路径。
虽然在技术上是有效的,但它们的结果都导致了灾难和头痛。尽管我的本意是好的,而且希望每次的开发会有所不同,但这些模式持续让我陷入困境。
根据组件的父类修改组件
几乎在Web上的每个站点中都有一个特定的视觉元素,它与每个事件看起来完全相同,只有一个例外。当遇到这种一次性的情况时,几乎每一个新的CSS开发人员(甚至是经验丰富的开发人员)都以同样的方式处理它。您要为这个特定的事件找出某个的父元素(或者创建一个),然后编写一个新规则来处理它。
examle中的小部件是不可预测的。一个开发过这些小部件的开发人员会希望它看起来是某种样子的,但是当她在侧边栏或主页上使用它时,它看起来就不一样了,尽管标记完全一样。
这也不是可重复使用或可扩展的。当它在主页上的样子被要求在其他页面上时,会发生什么呢?必须添加新的规则。
它不容易维护,因为如果要重新设计小部件,它必须在CSS中的几个位置进行更新,并且与上面的示例不同,提交这种特定反模式的规则很少会出现在相邻的位置。
想像一下这个代码是其它语言来完成的。你会先定义一个类,然后在另一部分代码中深入到了该类的定义,根据特殊的用例对它进行修改。这直接违反了软件开发的开放/封装原则:
软件实体(类、模块、函数等)应该为扩展开放,对修改封闭。
本文稍后会介绍如何在不依赖父选择器的情况下修改组件。
过于复杂的选择器
偶尔会有一篇文章出现在互联网上,展示CSS选择器的强大功能,并宣称无需使用任何类或id就可以对整个网站进行样式设计。
虽然在技术上是正确的,但是我使用CSS开发得越多,就越远离复杂的选择器。选择器越复杂,它与HTML的耦合就越紧密。依赖HTML标记和组合符可以保持HTML的干净,但它会让CSS代码变得很混乱和“肮脏”。
如果这个HTML永远不会改变,就可以对它的优点进行讨论,但是假设这个HTML永远不会改变的可能性有多大?过于复杂的选择器可能会令人印象深刻,它们可以消除HTML中的所有表象的挂钩,但它们很少帮助我们实现好的CSS架构的目标。
由于选择器指向标记中的一个非常特殊的位置,那么另一个具有不同HTML结构的组件如何重用这些样式呢?以一个选择器(下拉列表)为例,如果在另一个页面上需要一个类似的下拉列表,而它不在#main-navelement中呢?你必须重新打造整个样式。
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。