1

我是 Web 方面的新手,对如何处理 CSS 感到困惑。(谢天谢地),到目前为止,在使用 ExtJS4 时几乎没有直接操作 HTML/CSS……所以现在我需要更改 CSS,我遇到了问题。

具体来说,我正在尝试动态更改手风琴标题背景的颜色。

Javascript:

    afterrender: function(subForm) {
        subForm.getHeader().getEl().addCls('custom-accordion-hd-valid');
        // this works - so I know it's the right element.
        subForm.getHeader().getEl().setStyle('background', 'hsl(100, 60%, 60%)');
    }

CSS:

// attempt 1
.custom-accordion-hd-valid {
background: green;
}

// attempt 2
.custom-accordion-hd-valid .x-accordion-hd {
background: green;
}

所以:

  • 通过设置样式setStyle确实有效,但它不容易让我删除样式
  • 通过addClsCSS尝试设置 1加载 CSS,但它被覆盖.x-accordion-item
  • 通过addClsCSS尝试 2设置无法加载 CSS

帮助?

4

1 回答 1

1

例如,如果您想删除您在此处设置的背景样式:

subForm.getHeader().getEl().setStyle('background', 'hsl(100, 60%, 60%)');

css 将允许您通过再次设置它来简单地覆盖它,例如:

subForm.getHeader().getEl().setStyle('background', 'none');

或者

subForm.getHeader().getEl().setStyle('background', 'blue');

当提供多种样式时,css 在如何判断哪些样式最“重要”方面有一个特别的优先级 -请在此处查看这篇关于 css 特异性的精彩文章

并通过使用该 setStyle() 方法实现对这些元素应用“内联”样式,而文件或stylehtml 标记中的其他 css 定义具有较低的优先级

于 2013-11-08T17:56:48.217 回答