【问题标题】:Does CSS have a "start over" feature?CSS 是否具有“重新开始”功能?
【发布时间】:2010-04-27 18:52:57
【问题描述】:

我在 Rails 应用程序中使用 calendar_date_select(以下称为 CDS),并且有一个愚蠢的问题。当我将 CDS 组件嵌入到已经是 CSS 样式的页面中间时,所有的事情都会变得丑陋而错误(间距、字体等)。显然,CDS 中的元素从包含页面中已有的样式中继承了不需要的东西。

现在,我可以结合使用 Safari 的 CSS 调试,并逐个元素地分析问题所在。但那是 (A) 乏味的,并且 (B) 可能会在我的组件样式中加载大量容器失败的特殊情况。如果不出意外,我肯定会在未来更改包含页面的样式,并且必须维护特殊情况。

我的问题:是否可以在页面中有一个 DIV 基本上取消所有现有样式?是否有一个简单的单线可以做到这一点?如果做不到这一点,可以逐个元素地完成吗?

例如我知道 CDS 生成什么标签,所以我可以列出每个标签:

{ p: "#--NOTHING--#"; a: "#--NOTHING--#"; }

#--NOTHING--# 是魔法关闭所有继承样式的咒语。

http://code.google.com/p/calendardateselect/

谢谢,偷看。

【问题讨论】:

标签: ruby-on-rails css select calendar


【解决方案1】:

你可能想用一个 div 包围你的 CDS 组件,也许给它一个 CDS_wrap 的 id 或其他东西。

然后在您的 CSS 中,为该 div 及其所有内容重新设置样式,如下所示:

div#CDS_wrap * {
  padding: 0;
  margin: 0;
  font-size: 12px;
  etc...
}

【讨论】:

    【解决方案2】:

    在 CSS3 中,initial 应该是您正在寻找的东西。如果您(像大多数人一样)以 CSS1-CSS2 为目标,则除了更改自己的 CSS 以使 CDS 永远不会受到影响之外,您别无机会。

    【讨论】:

      【解决方案3】:

      Braxo 走在正确的轨道上,但并未代表规则优先级。除了日历容器上的(名义上的)#CDSReset 和 Braxo 的建议规则之外,您还需要使用假冒的逗号分隔的 id 选择器重载该规则,直到它的优先级位于您想要的位置:

      #CDSReset, #bogusAlfa, #bogusBravo, #bogusCharlie /* &c. */ {
        ...
      }
      

      当我在样式表中执行此操作时,我习惯于注释那些重载的规则,这样我就不会误认为选择器只是为了游戏优先级规则而包含的虚假位。

      【讨论】:

        猜你喜欢
        • 2012-02-04
        • 1970-01-01
        • 1970-01-01
        • 2023-02-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-02-26
        • 2017-03-30
        相关资源
        最近更新 更多