Rails检索错误的样式?

时间:2015-10-24 23:43:37

标签: css ruby-on-rails ruby-on-rails-4

在制作一个相对基本的Rails应用程序之后,我尝试添加一些样式。我有两个控制器:“欢迎”和“内容”。我想将“欢迎”橙色和“内容”红色链接。

我首先将以下(以及其他一些样式)样式添加到/app/assets/stylesheets/application.css

a{
  display:inline-block;
  line-height:20px;
  padding:2px 10px;
  color:white;
  text-decoration: none;
}

随后,我将以下内容添加到/app/assets/stylesheets/content.scss:

a{
  background-color:red;
}

当然以下是/app/assets/stylesheets/welcome.scss:

a{
  background-color:orange;
}

除了“内容”中的链接框是橙色而不是红色外,所有样式似乎都正确显示!如果我将颜色从橙色更改为其他颜色,“内容”链接颜色也将更改为该颜色。

为什么我的应用中的“内容”部分没有加载正确的样式?这是一个特殊问题吗?

我在这里搜索过,我发现大多数人都有缓存样式的问题,但这不是我的问题,因为我可以改变“欢迎”风格,并对其进行另一项更改。它只是从错误的位置加载......

1 个答案:

答案 0 :(得分:0)

首先,我会进入您的开发工具并查看您的资产来源,并确保将该文件编译到您的CSS文件中。

如果是,那么我会在您的浏览器中使用您的检查工具(我使用chrome dev工具)来检查您尝试定位和查看的元素。通常,Chrome会向我显示正在应用于目标的样式,以及实际计算的样式。有时候,你会有被接管的风格。

对我而言,这听起来就像你将这两种风格应用于链接盒一样。除非你的a元素位于页面上不同元素的上方,否则我认为welcome.scss文件是在你的content.scss文件之后编译的,而css的工作方式是你有两种不同的样式影响一个元素,后面的元素实际上是计算的元素。

听起来,你需要更加具体的选择器。通常我所做的是在顶部div处添加一个视图名称正确的类。所以......欢迎页面顶部就是这样的东西。这样你就能做到这样:

.content a{ 
  background-color: red;
}

它仅适用于内容部分中的元素。

使用CSS,您必须非常谨慎地确定您要定位的网页上的哪些元素。否则,你最终会得到满满的风格。