影响多个视图的scss文件问题

阿杜罗·麦地那

我正在用红宝石构建一个橄榄球联盟网页。我创建了三个页面(脚手架):新闻,统计数据和页首横幅。它们每个都有一个scss文件,并且也受application.scss影响scaffolds.scss

当我将stats页面中表格的背景颜色(或其他任何颜色)stats.scss更改为red(只是随机颜色)时,新闻视图和页首横幅视图也会受到影响,并且即使我将其设置为红色,更改为自己的scss文件中的其他颜色(例如蓝色和绿色)。

我不明白为什么会这样。stats.scss文件不应该仅影响统计信息视图吗?

颜色也没有在application.scssscaffolds.scss文件中设置,所以我不知道为什么每个视图都受stats.scss文件影响

用户名

这是因为Rails(或精确地说是资产管道)将.scss在开发环境的每个页面中包含所有文件。右键单击HTML页面->单击“查看页面源代码”,您可以看到所有.scss文件。

导轨让你的文件结构像news.scssleaderboard.scsscss文件夹中,这样就可以组织你的控制器的特定代码,以使你的代码的生活生产。然后,Rails将application.scss在生产环境中将所有这些文件捆绑在一起并最小化/优化为一个文件

当我在stats.scss中将统计页面的表(或其他任何东西)的背景颜色更改为红色(只是随机颜色)时,新闻视图和页首横幅视图也会受到影响,并且即使我将其颜色更改为红色,在自己的scss文件中将它们设置为其他颜色(例如蓝色和绿色)。

这是因为您的leaderboardnews.scss会先加载,然后再stats.scss加载。Rails在使用资产管道将加载升序的CSS文件require tree .application.scss因此,颜色值leaderboard.scssnews.scss不作为申请stats.scss在最后的inluded。

您应该考虑使用其他类或使用全局背景类颜色。例如:

// news.scss
.news-table{
  background: "yellow";
}

// stats.scss
.stats-table{
  background: "red";
}

然后可以在news.html.erb文件中使用:

<table class="news-table">...</table>

或者,您可以通过全局方式执行此操作:

// application.scss
.red-bg{
  background: red;
}

.yellow-bg{
  background: yellow;
}

然后在您的news.html.erbstats.scss文件中:

// news.html.erb
<table class="red-bg">...</table>

// stats.html.erb
<table class="yellow-bg">...</table>

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章