如何使CSS样式依赖于其父元素



我想知道是否可以根据主体ID的值定义元素的样式。

这很难解释,但像这样的东西是理想的:

HTML:

<body id="home">

CSS:

body#home {
  a { /* code here */ }
  p { /* code here */ }
}
body#profile {
  a { /* different code here */ }
  p { /* different code here */ }
}

我知道我能做到:

body#home a { /* code here */ }

但这变得非常重复。

,我将期待您的回复

Peter

如果使用像SASS或LESS 这样的CSS框架,就可以做到这一点

以下是关于如何使用LESS进行此操作的文档。希望这能有所帮助。

ID应该是唯一的,因此#home { ... }是可以接受的。

然后和子元素将是:

#home .myClass { ... }

如果经常使用此技术对页面进行重新蒙皮,则只需更改主体上的ID或类即可。

请注意,虽然使用CSS框架可以支持这样的嵌套样式,但应该仔细考虑在CSS中保持模块化和干净的继承。你最终可能弊大于利。特别是,要注意初始规则,如下所述:

http://thesassway.com/beginner/the-inception-rule

盗梦空间规则:深度不要超过四层

您对标记所做的任何更改都需要反映到Sass,反之亦然。这也意味着样式是有界的这些元素和HTML结构的生命违背了"级联样式表"中"级联"部分的目的

如果你遵循这条路,你还不如重新开始写CSS内联在HTML中(请不要)。

做您所说的事情的最好方法是在网站上有一个基本样式表。

他们有:

标头中的<style>元素覆盖您选择的任何

为每个页面提供不同的样式表

相关内容

最新更新