【问题标题】:CSS !important has no effect on XUL elementCSS !important 对 XUL 元素没有影响
【发布时间】:2012-11-28 11:56:54
【问题描述】:

我正在尝试将 XUL 用于 Intranet 应用程序。

我遇到了一个 CSS 问题,样式中的 where 和 !important 指令对类为“error”的文本框元素没有任何影响。

textbox.error {
background-color: #F00 !important;
}

仅当我添加 -moz-appearance: none;它开始工作,但它丢失了该元素的所有样式。

有没有办法只重载 background-color 属性(在这种情况下)?

我希望我的应用程序具有原生外观,因此这不是最理想的。

谢谢

-- 编辑--

这是 XUL 结构:

<?xml version="1.0"?>
<?xml-stylesheet href="/_backend/views/css/xul.css" type="text/css"?>

<window
id="workorders-edit-window"
title="{$title}"
orient="horizontal"
width="500"
height="400"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>

<vbox flex="1" orient="vertical">

    <groupbox>
        <caption label="Osnovne informacije"/>

        <hbox flex="5">
            <vbox>
                <label control="ref" value="Št. delovnega naloga"/>
                <textbox id="ref" size="10" value="" class="error"/>
            </vbox>
        </hbox>

    </groupbox>

</vbox>

</window>

还有 CSS:

@import url(chrome://global/skin/);

textbox.error {
background-color: #F00;
}

【问题讨论】:

  • HTML 是什么样的?
  • 您是否尝试过更具体的选择器?如果没有看到 html,将很难提供替代方案,除非在极端情况下,否则不应真正使用 !important
  • 添加了 xul 和 css。我尝试了 textbox#ref 甚至 inline (in style="") 但都没有任何效果。仅当我添加 -moz-appearance: none 时。

标签: css xul


【解决方案1】:

不幸的是,系统就是这样工作的。如果您想要原生样式,那么系统将设置许多属性 - 您不能覆盖这些属性。如果您通过 -moz-appearance: none 禁用本机样式,那么您将必须定义通常开箱即用的所有属性。

但是,有时您可以通过使用其他 CSS 属性来实现所需的效果,这些属性不是由本机样式确定的。我自己没有想出解决方案,我宁愿查看findbar code 正在做什么。原来box-shadow property可以用在这里:

textbox.error {
  box-shadow: 0 0 0 1em #f00 inset;
}

【讨论】:

  • 感谢您阐明-moz-appearance: none 的工作原理。我必须说设置阴影甚至比背景更好:) 只是inset 对我不起作用。但这是题外话。底线:你只需要找到一个替代的 CSS 样式。
猜你喜欢
  • 2018-12-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-09
  • 2010-12-29
  • 2016-07-08
  • 2013-08-01
  • 2014-07-16
相关资源
最近更新 更多