如何覆盖Twitter Bootstrap中的样式?例如,我目前正在使用具有CSS规则'float:left;'的.sidebar类.我怎样才能改变它,以便它向右转?我正在使用HAML和SASS,但它对于Web开发来说相对较新.
基本上我有一个结构,曾经在3.0.x完美地工作,现在它打破了undefined variable错误.
的application.css.sass:
//=require 'main'
Run Code Online (Sandbox Code Playgroud)
的main.css.sass:
@import 'partials/base'
@import 'partials/header'
Run Code Online (Sandbox Code Playgroud)
非常简单的东西.
我收到错误,_header.css.sass
因为它使用了一个定义的变量_base.css.sass
我以前没有这个错误,对我来说没有任何意义,因为我们在导入_base.css.sass的同一个上下文中导入了这些变量_header.css.sass.
我是否还要_base.css.sass在每个部分进口?main.css.sass如果不能在你需要的部分中使用全局变量,那么它的要点是什么?
如果我的结构完全错误,请给我一个替代方案,我喜欢建议.
推荐链:
它被报告为bootstrap-rails gem的一个问题:https://github.com/anjlab/bootstrap-rails/issues/91
宝石
gem 'sass-rails', '>= 3.2' # sass-rails needs to be higher than 3.2
gem 'bootstrap-sass', '~> 3.1.1'
Run Code Online (Sandbox Code Playgroud)
安装(在资产组的外部和内部尝试),application.css.scss包含
@import "bootstrap";
Run Code Online (Sandbox Code Playgroud)
只要.
尝试bundle exec rake assets:precompile时会出现此错误:
rake aborted!
Undefined variable: "$alert-padding".
(in /home/joe/.rbenv/versions/1.9.3-p448/lib/ruby/gems/1.9.1/gems/bootstrap-sass-3.1.1.0/vendor/assets/stylesheets/bootstrap/_alerts.scss)
/home/joe/.rbenv/versions/1.9.3-p448/lib/ruby/gems/1.9.1/gems/bootstrap-sass-3.1.1.0/vendor/assets/stylesheets/bootstrap/_alerts.scss:10
/home/joe/.rbenv/versions/1.9.3-p448/lib/ruby/gems/1.9.1/gems/sass-3.2.7/lib/sass/script/variable.rb:49:in `_perform'
/home/joe/.rbenv/versions/1.9.3-p448/lib/ruby/gems/1.9.1/gems/sass-3.2.7/lib/sass/script/node.rb:40:in `perform'
/home/joe/.rbenv/versions/1.9.3-p448/lib/ruby/gems/1.9.1/gems/sass-3.2.7/lib/sass/tree/visitors/perform.rb:298:in `visit_prop'
/home/joe/.rbenv/versions/1.9.3-p448/lib/ruby/gems/1.9.1/gems/sass-3.2.7/lib/sass/tree/visitors/base.rb:37:in `visit'
/home/joe/.rbenv/versions/1.9.3-p448/lib/ruby/gems/1.9.1/gems/sass-3.2.7/lib/sass/tree/visitors/perform.rb:100:in `visit'
/home/joe/.rbenv/versions/1.9.3-p448/lib/ruby/gems/1.9.1/gems/sass-3.2.7/lib/sass/tree/visitors/base.rb:53:in `block in visit_children'
/home/joe/.rbenv/versions/1.9.3-p448/lib/ruby/gems/1.9.1/gems/sass-3.2.7/lib/sass/tree/visitors/base.rb:53:in `map'
/home/joe/.rbenv/versions/1.9.3-p448/lib/ruby/gems/1.9.1/gems/sass-3.2.7/lib/sass/tree/visitors/base.rb:53:in `visit_children'
/home/joe/.rbenv/versions/1.9.3-p448/lib/ruby/gems/1.9.1/gems/sass-3.2.7/lib/sass/tree/visitors/perform.rb:109:in `block in visit_children'
/home/joe/.rbenv/versions/1.9.3-p448/lib/ruby/gems/1.9.1/gems/sass-3.2.7/lib/sass/tree/visitors/perform.rb:121:in `with_environment'
/home/joe/.rbenv/versions/1.9.3-p448/lib/ruby/gems/1.9.1/gems/sass-3.2.7/lib/sass/tree/visitors/perform.rb:108:in `visit_children' …Run Code Online (Sandbox Code Playgroud) 我正在升级具有大量SCSS样式表的rails应用程序以使用资产管道,并且需要为每个文件包含一些全局变量和mixin.
@import在每个文件的顶部添加几个指令不是很干,所以我想做这样的事情:
# application.css
/*
*= require variables
*= require mixins
*= require_tree .
*/
Run Code Online (Sandbox Code Playgroud)
当然,这不起作用,因为变量不会跨文件持久存在.谁知道如何实现这一目标?
我使用@import'部分表来组织我的css/sass:
/app
/assets
/stylesheets
_constants.sass
_layout.sass
...
app.css.sass
app.css.sass:
@import _constants.sass
// basic styles
@import _layout.sass
@import ...
Run Code Online (Sandbox Code Playgroud)
app.css.sass有一个@import规则_layout.sass,允许我在原始sass文件被压缩之前共享mixins和变量app.css
问题是Rails无法识别@import'd partials(_layout.sass)app.css的更改,并且在我对实际app.css.sass文件本身进行更改之前不会重新生成.这大大减慢了我的工作流程,意味着我必须添加/删除空行app.css.sass以查看更改.3.0中从未遇到过这个问题.
有没有办法迫使sass资产在开发中的每个服务器请求上重新生成?
我使用bootstrap-sass将bootstrap集成到我的应用程序中.该应用程序在我的本地计算机上工作正常,但当我通过capistrano部署时,我收到此错误:
Undefined variable: "$baseLineHeight".
(in /var/www/CollegeSportsBlueBook/shared/bundle/ruby/1.9.1/gems/bootstrap-sass-2.0.1/vendor/assets/stylesheets/bootstrap/_accordion.scss)
Run Code Online (Sandbox Code Playgroud)
当capistrano试图跑 assets:precompile
我认为这个变量抛出错误,因为它是第一个尝试预编译的scss文件中的第一个变量.
有些事情没有正确加载.任何想法可能是什么?
编辑
完整跟踪https://gist.github.com/2233071
编辑2
将application.rb和production.rb添加到gist
我正在使用Rails 3.2.1.如何在rails应用程序中添加外部样式表?
我尝试了以下答案无济于事:
public/stylesheets.我有一个公用文件夹,但我有样式文件夹/vendor/assets.