css - 脚手架 CSS 与 Bootstrap CSS 混合用于 error_explanation/field_with_errors

标签 css ruby-on-rails twitter-bootstrap

我一直在关注 Michael Hartl 的 Ruby on Rails 教程,以使用 Bootstrap 表单验证而不是内置的 RoR 样式。我的页面应该看起来像这样(通过检查器删除了样式):

enter image description here

相反,我得到: enter image description here

我有以下 custom.scss

 @import "bootstrap-sprockets";
 @import "bootstrap";

 #error_explanation {
     color: red;
     ul {
         color: red;
         margin: 0 0 30px 0;
     }
 }

 .field_with_errors {
     @extend .has-error;
 }

这是 View 的样子:

<% if game.errors.any? %>
  <div id="error_explanation">
      <div class="alert alert-danger">
          <%= pluralize(game.errors.count, "error") %> prohibited this game from being saved:
      </div>
      <ul>
          <% @game.errors.full_messages.each do |msg| %>
              <li><%= msg %></li>
          <% end %>
      </ul>
  </div>

...

<div class="form-group">
<%= f.label :game_name, :class => "col-sm-2 control-label" %>
<div class="col-sm-10">
    <%= f.text_field(:game_name, {:class => "form-control"}) %>
</div>
</div>

我已经尝试寻找让 Bootstrap 覆盖 scaffold.scss 的方法,所以我将下面显示的 require custom 放在我的 application.css 中

*= require_tree .
*= require_self
*= require custom

我在此类问题上看到的大多数 SO 问题只是由于针对当前版本的 Bootstrap 使用了错误的类而没有显示 Bootstrap 类,但这些类正在正确加载,就在脚手架旁边CSS。

最佳答案

脚手架样式表并没有真正覆盖您的自定义样式表。它向 #error_explanation.field_with_errors 添加了额外的属性。

属性如 padding: 2px;背景色:红色;显示:表格; ETC。 在一天结束时, Assets 管道将所有样式表连接在一起,导致您描述的问题。

如果您不需要保留脚手架样式表,只需转到 app/assets/stylesheets/ 并删除 scaffolds.scss。 但是,如果您希望保留脚手架样式表,则需要考虑手动编辑它,或者您可能希望为应用程序的不同部分呈现不同的布局。

.field_with_errors 定义与 Michael Hartl's tutorial 中的定义也存在细微差别。看起来像这样:

.field_with_errors {
  @extend .has-error;
  .form-control {
    color: $state-danger-text;
  }
}

关于css - 脚手架 CSS 与 Bootstrap CSS 混合用于 error_explanation/field_with_errors,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40639219/

相关文章:

html - Flexbox 断点对两列没有响应

css - Bootstrap : how to stack divs of different heights?

ruby-on-rails - 在Rails控制台中抑制SQL输出的简单方法?

css - Angular Material 导航栏不是响应式的

javascript - 给定形状列表动态创建的复杂 HTML 网格

html - 将鼠标悬停在按钮上时,下拉菜单不可见

html - 覆盖溢出 : hidden

ruby-on-rails - 如何让第一个用户成为 Devise gem 的管理员?

ruby-on-rails - 雾警告和 AWS : unable to load the 'unf' gem

css - Bootstrap 自定义导航栏中隐藏在主菜单后面的下拉菜单项