如何向CSS新手解释“级联”?

12

我发现向新手解释CSS中使用样式表时如何工作的层叠方式很困难。不知为何,新手似乎会自然而然地开始只是向每个元素添加一个类。以这个问题(无意冒犯提问者overtherainbow)中的代码片段为例:this question

像这样做:ul#nav { }ul#nav li { }
比这样做更好:ul.nav { }li.navLinks { }

这只是一个非常基本的例子,但你明白了。在这种情况下使用继承显然是有益的。

我曾经试图使用语义作为参考点,但这并没有证明是有效的。可能是因为“类”这个术语会因为面向对象编程(OOP)的先验知识而变得有趣/令人困惑。最终,他们总是会在看到一个好的例子之后,有一个突破性的时刻,最终“明白了”。但我正在寻找一种简化这个过程的方法,因为我不想成为那个不得不回去维护这个滑入生产的“类癖”副产品的人。

我特别喜欢这个答案解释了递归。当我在学校时也有一个类似的解释,我立刻就“明白了”。我希望在某个聪明的人那里能够找到类似的方法,简洁而全面地解释层叠。


我更喜欢在元素中使用内联样式。我没有时间学习所有这些CSS巫术。 - ChaosPandion
ChaosPandion: 我希望你是在开玩笑 ;) 那就像是没有函数进行编程 ;) - nicomen
@nicomen - 函数? :) - ChaosPandion
函数是为那些无法处理单个、没有函数的 40,000 行程序,使用 goto 语句的人准备的。 - Erik
4个回答

4
也许你可以先在开始时忽略id和class。尝试通过层级关系来定位元素,做一些“愚蠢”的事情。然后再解释分组和标记,并将它们结合起来。

我们能否给一些例子,方便像我这样的慢学者理解呢? - ChaosPandion

3
可能有助于将CSS Cascade描述为与DOM层次结构正交的层次结构。 这两个层次结构在显示元素处相遇。DOM提供了结构嵌套,CSS提供了显示属性嵌套。CSS只是用于描述显示属性层次结构的语言。
理解CSS Cascade的真正困难在于它包含足够多的鲁伯·戈尔德堡功能,以破坏任何能够“点亮学生灯火”的单一统一原则。在黑暗和理解之间总会有一些令人费解的事情。
我能想到的关于CSS cascade的最佳描述和解释来自于www.w3.org Cascade。我建议不断阅读这篇文章,直到调光开关被推高到至少“看到光”。
从一个简单的HTML文档开始,添加一些简单的CSS,弄清楚发生了什么以及为什么, 添加一些东西,弄清楚它,再添加一些东西,弄清楚它...我可以看到光。

1

对我来说,从右到左阅读CSS很容易理解,就像这样:

div#nav li:hover a

我会将其翻译为:

对于 所有在 "li" 标签内的 "链接" 当鼠标悬停时如果它们位于 id=nav 的 div 标签内,执行以下操作{ ....


0

你可以让你的学生尝试创建一个相对高级的布局,而不使用任何类或ID属性。

关于层叠的一个关键点是要充分利用HTML文档的DOM树。此外,层叠的一个重点是您可以将多个样式应用于一个元素,以便其结果样式为样式a + 样式b + 样式c


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接