原谅那个疯狂的头衔......
我试图在面向对象编程中理解继承与接口的概念。所以我试图将它与我已经知道的东西联系起来,这就是CSS。
在CSS中,您可以选择在层次结构中设置样式,以允许元素继承"继承"风格:
(与OOP中的继承一样?)
a { color:red; text-decoration:underline; }
p { background:black; color:white; padding:20px; }
img { background:silver; padding:2px; }
或,带.class的样式(这是一种更好的做法):
.main-links { color:red; text-decoration:underline; }
.main-paragraphs { background:black; color:white; padding:20px; }
.main-images { background:silver; padding:2px; }
(与OOP中的界面类似?)
CSS中的这个概念是否类似于继承与接口(对于OOP)?或者我有完全错误的想法。
答案 0 :(得分:1)
简短回答:你有完全错误的想法。 绝对没有办法可以使用CSS解释OOP继承/接口。
继承和接口是编程概念(非常基本的设计模式),而CSS不是编程语言(不是完整的)。
有许多非常容易理解的在线教程/文章,可以让您对这两个概念有一个很好的理解。我建议你阅读它们。
编辑:嗯,在第二个想法,也许,也许,只是也许,继承可以使用CSS解释类。就像样式属性在CSS中级联一样,类方法和属性“级联”到派生类。但是,阅读介绍性教程比尝试通过CSS理解这些概念要好得多。
答案 1 :(得分:1)
如果将OOP与CSS进行比较,您会发现可以将接口与样式进行比较,但CSS中没有类似继承的内容。
OOP中的接口非常适用于将类应用于元素。与向元素添加多个类以组合不同外观的方式相同,可以向类中添加多个接口以组合不同的行为。
如果你在CSS中有继承,那就是这样的:
.main-links { color: red; }
.info-links { @inherits: .main-links; font-weight: bold; }
此处有一条规则会继承另一条规则,因此您只能将类info-links
应用于元素,以获取main-links
的实现。
(当然这在CSS中不起作用,因为规则没有名称而是选择器,并且选择器甚至不必是唯一的,因此它们不能用于识别规则。)< / p>