为什么所有链接的Rails CSS都不起作用,而是与:class=>&引用;福;?

为什么所有链接的Rails CSS都不起作用,而是与:class=>&引用;福;?,css,ruby-on-rails,ruby-on-rails-3,Css,Ruby On Rails,Ruby On Rails 3,我有一个很奇怪的问题。我有一个Rails页面,我想用CSS格式化所有链接,还有一些菜单链接应该有另一种颜色。所以我从 .menulink:link, .menulink:visited, .menulink:hover, .menulink:active{ color: red; } 在菜单栏片段CSS中(sidebar.CSS.scss) 对于所有其他链接,我将CSS写入application.CSS.scss: a:link, a:visited,

我有一个很奇怪的问题。我有一个Rails页面,我想用CSS格式化所有链接,还有一些菜单链接应该有另一种颜色。所以我从

    .menulink:link, .menulink:visited, .menulink:hover, .menulink:active{
        color: red;
    }
在菜单栏片段CSS中(
sidebar.CSS.scss

对于所有其他链接,我将CSS写入
application.CSS.scss

    a:link, a:visited, a:hover, a:active{
        color: green;
    }
有趣的是,这是行不通的。但是如果我向代码中的任何链接添加一个类标记,就像这样

    <%= link_to "Alle Artikel", :controller => :articles, :action => :index, :class => "foo" %>
:articles,:action=>:index,:class=>“foo”%>
它工作得很好。我真的很困惑。为什么会有这种行为

重新格式化如下:

<%= link_to "Alle Artikel", {:controller => :articles, :action => :index}, :class => "foo" %>
:articles,:action=>:index},:class=>“foo”%>

我怀疑您可能在级联样式表中看到了“级联”。
基本上,当您放置一个特定的类选择器时,类就会被应用。这是css的规则,规则越具体,它将越多地应用更高级别的“全局”设置。

因此,当您在更高的常规级别(如“所有锚定”)应用规则时,可能发生的情况是,在比“所有锚定”更低的级别上存在样式规则但是在比类/标记更高的级别上,这可能有助于解释您看到的行为。

您的代码中是否有可能影响布局的类foo css。我不清楚您的问题,但您必须在如下链接中添加类:
:articles,:action=>:index},:class=>“foo”%%>
这就是为什么不建议使用
:controller
+
:action
。使用:
articles\u path
,您不会对
:class
选项的位置感到困惑。您使用的是哪种浏览器工具?一个好的开发设置(我喜欢Firefox和Firebug扩展)会让你看到哪些CSS规则适用于每个元素(哪些被覆盖)。事实上,没有,除了上面提到的CSS规则,我没有其他CSS规则。尤其是没有,这使得锚灰色(但这就是他们成为…)我也尝试了文章的路径,但它没有改变任何形式的结果。链接仍然是灰色的。啊,实际上我使用firefox和firebug,这是一个很好的建议,xavier。非常感谢。啊,真有趣!如果我这样做,那么它也不起作用,即使我用任何css类名添加:class=>“foo”。因此:articles,:action=>:index,:class=>“foo”}%>是有效的,但是:articles,:action=>:index},:class=>“foo”%%>没有意义,在花括号内使用:class声明将类作为参数发送。例如,
,如果将其置于花括号之外,则锚定将获得一个类。实际上,我也考虑过这个问题。但事实上,我还没有定义一个css风格,使我的锚灰色(但成为该颜色)。有没有rails默认的默认css样式?原来有一个scaffold.css.scss,其中包含一个a{color:#000;&:visted{color:#666;},所以它确实像级联样式表一样级联……没问题。firebig和Chrome developer工具等浏览器工具可以在这方面提供很大帮助。