Rails 5.0.2中bootstrap-sass gem样式加载不全,导航栏显示异常求助
解决bootstrap-sass导航栏样式加载不全(btn-outline-success不生效)的问题
我之前也踩过这个坑!用bootstrap-sass做导航栏时部分样式没加载出来,尤其是btn-outline-success这类按钮类失效,核心原因大概率是版本不匹配,咱们一步步排查解决:
1. 先搞清楚bootstrap-sass的版本限制
你可能不知道,bootstrap-sass这个gem对应的是Bootstrap 3的版本,而btn-outline-success这类轮廓按钮是Bootstrap 4才新增的特性!这就是为啥btn基础类能生效(Bootstrap 3也有这个类),但btn-outline-success完全没反应——Bootstrap 3里根本没有这个类。
2. 两种解决方案,看你的需求选
方案一:继续用Bootstrap 3(bootstrap-sass)
如果不需要Bootstrap 4+的新特性,就改用Bootstrap 3对应的按钮类:
- 把
btn-outline-success换成btn-success,就能看到正常的绿色实心按钮; - 如果一定要轮廓按钮效果,得自己写自定义CSS模拟:
.btn-outline-success { color: #5cb85c; background-color: transparent; border-color: #5cb85c; } .btn-outline-success:hover { color: #fff; background-color: #5cb85c; border-color: #5cb85c; }
方案二:升级到Bootstrap 4+(替换gem)
如果想要用Bootstrap 4+的新样式,就得换掉旧的gem:
- 修改Gemfile:移除
gem 'bootstrap-sass',换成gem 'bootstrap', '~> 4.6'(选你需要的版本) - 执行
bundle install更新依赖 - 调整SCSS导入:把原来的
@import 'bootstrap'改成
@import "bootstrap/scss/bootstrap";
- 补充依赖:Bootstrap 4+需要Popper.js支持交互组件(比如下拉菜单),可以在Gemfile里加
gem 'popper_js',然后在JS文件里导入:
//= require popper //= require bootstrap
3. 最后检查编译和加载
- 确认你的自定义样式写在Bootstrap导入之后,避免被默认样式覆盖;
- 打开浏览器控制台,查看网络请求里的CSS文件,确认Bootstrap的样式文件是否正常加载,有没有404或者编译报错。
内容的提问来源于stack exchange,提问作者Leonardo Valverde
相关产品推荐
相关产品推荐

