选择类中的对象

时间:2013-02-05 20:19:37

标签: css css-selectors

所以,这是一个长期困扰我的问题。这些天我一直在深入研究CSS。我正试图远离jQuery这个项目,因为它在Drupal中,我试图远离自定义代码。

所以,当用户没有登录时,我们有一个系统应用于BODY的类,称为“未登录”。现在这个应该对我们有用(因为我理解CSS ),因为我们只允许管理员“登录”。当我们有人编辑节点时,我们会发生冲突 - 所有自定义类都在两种情况下加载,而且一些编辑控件看起来很时髦。

所以BODY风格是这样的:

<body class="html not-front not-logged-in no-sidebars page-node page-node- page-node-1 node-type-page footer-columns" >

    ... [much body content here--other divs, other classes, elements with IDs] ...

    <div class='mycustomclass'>Should be bigger if logged in</div>
</body>

所以,当我尝试添加CSS选择器和样式时,如下所示:

.not-logged-in .mycustomclass {
    font-size: 20px;
}

似乎忽略了.mycustomclass。我之前遇到过这种情况,并把它归结为我可怜的CSS-fu。并且总是有jQuery,所以我真的不必关心。如果有人能为我清除这个长期的谜团,我真的很感激。

2 个答案:

答案 0 :(得分:2)

你的语法很好,没有问题。

我想象两个问题之一:

  1. 实际上并没有在正文或mycustomclass元素上加载类。检查呈现的源(即在浏览器中),而不仅仅是您自己的代码。因为它是Drupal,它可能是缓存所以你的更改没有被加载。 清除Drupal缓存

  2. 特异性。也许元素上还有另一个类,或者可能有一个全局规则。无论哪种方式,都可能会覆盖该元素上的CSS。

  3. 要解决这两个问题,请在Firefox中使用Firebug和Web Developer Toolbar。两者都是做CSS的必要条件。

答案 1 :(得分:0)

确保Drupal在HTML的<head>中添加css脚本标记。您应该在样式表引用后跟随它们。就是这样,drupal css(将未登录的类添加到<body>中)必须在你的css之前执行。