css - 面向对象的 CSS : Catchy Buzz-phrase or Legitimate Design Approach?

标签 css oop methodology oocss

Web 开发领域似乎出现了一个新的流行语:面向对象的 CSS。

从表面上看,我觉得这只是将最佳实践包装在一个朗朗上口的口号中。我理解并完全尊重这场运动背后的意图,但还有更多吗?

有没有人有任何进一步的见解使这种方法与众不同,或者我应该把它作为一个提醒,以确保我正确地继承和级联我的类?

最佳答案

我会说它更像是一个朗朗上口的流行语,用来形容 CSS 中已经存在的东西。当然,在我们开始讨论什么是 OO 什么不是以及 CSS 是如何面向对象之前,我们必须定义它到底是什么——这是其他人之前一直在努力解决的问题,并且引起了激烈的争论。但是如果我们假设 the basic principles of OO are:

  • 类(class)
  • 对象
  • 实例
  • 方法
  • 消息传递
  • 继承
  • 抽象
  • 封装
  • 多态性
  • 解耦

我们可以说,级联样式表在某种程度上是面向对象的,因为它们允许定义类、创建实例/对象(通过将类分配给元素)、类的继承(甚至多重继承)、抽象(例如,通过为普通元素定义样式)和多态性(通过为不同元素定义相同的类名)。当然,由于 CSS 的静态特性,方法/消息传递是不可能的。

所以总的来说,我会说它是一种以面向对象的方式开发 CSS 的有效方法,但我不会真正称之为面向对象的 CSS,因为至少对我来说,它是 CSS 固有的东西。这有点像说“我正在做面向对象的 Java...”

关于css - 面向对象的 CSS : Catchy Buzz-phrase or Legitimate Design Approach?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/657407/

相关文章:

javascript - jQueryUI。为什么界面这么大?

html - 选择背景为 :inherit bug 的选项

python - 为什么 super().__init__ 没有自引用?

c++ - 从 C++ 类实现二维矩阵

c++ - 如何在没有数据竞争的情况下在一个套接字上实现具有并行请求和响应的非阻塞客户端-服务器通信模型

design-patterns - 什么时候不使用 IoC 和 DI?

css - 代码{字体粗细:bold} not working in mobile-chrome

jquery - 如何更改 jquery text() 的样式?

javascript - 如何在 JavaScript 中建模这个数据结构? (AngularJS)

programming-languages - 不断变化的框架/API - 我们如何跟上?