Drupal:如何覆盖某个块的css?

时间:2009-10-12 08:46:26

标签: drupal

我需要从右侧边栏块的其余部分移除一个块的边框,但我不知道该怎么做。我已经尝试这样做了:

#sidebar-right div#block-block-14 {
    border:1px dashed orange !important;
    text-align:center;
}

div#block-block-14是该块的drupal生成id:

<div id="block-block-14">

但是我无法移除它的边界。

提前致谢:)

2 个答案:

答案 0 :(得分:2)

id中的哈希会破坏它。 Drupal不会在div中放置一个哈希默认值,所以你可能需要查看你的主题。 block.tpl.php可能是为您创建此问题的模板。通常div#不会包含在id中,其余部分告诉你它是哪个块,block-block-14只是意味着来自块模块id为14的块。不同的模块可能有不同的命名方案但是想法大致相同。

一旦你让Drupal停止打印额外的div#你应该可以在你的css中这样做:

#block-block-14 {
    ....
}

除非您使用面板,否则您通常不需要除id之外的任何内容,因为每个块只能位于一个区域中。根据您要覆盖的规则的实施方式,您可能需要添加一些额外的选择器以使其更具重要性。

答案 1 :(得分:1)

因为它是你想要定位的id,你应该在它之前有#字符:

#div#block-block-14 {
   border:1px dashed orange !important;
   text-align:center;
}

由于该ID对于页面是唯一的,您只需指定一个ID,您也不需要指定#sidebar-right id。

我不确定id里面的#字符是怎么回事。可能无法定位看起来那样的id。在这种情况下,您必须更改id的生成方式,或者找到另一种定位元素的方法,例如向元素添加类名。

编辑:
通过更正,id看起来很好,你只需要使用:

#block-block-14 {
   border:1px dashed orange !important;
   text-align:center;
}