如何让@ screen-sm @ screen-md @ screen-lg变量起作用,而不是给我错误?在使用bootstrap-sass gem的rails中?
当我删除@ screen-sm @ screen-md @ screen-lg变量并用像素值替换它们时,浏览器中的错误就会消失。但是当我使用这些变量时,浏览器rails错误表明这些参数无效。
我正在使用bootstrap-sasts 3.0.3。
我的application.js文件中也有//=require bootstrap
。
github页面https://github.com/twbs/bootstrap-sass说这样做会导致变量在其他文件中不可用,但即使我从我的js文件中删除了这一行,我仍然无法使用application.css.scss文件中的变量。
application.css.scss
*= require_self
*= require_tree .
*/
@import "bootstrap";
/* Small devices (tablets, 768px and up) */
@media only screen and (min-width: @screen-sm){
}
/* Medium devices (desktops, 992px and up) */
@media only screen and (min-width: @screen-md){
}
/* Large devices (large desktops, 1200px and up) */
@media only screen and (min-width: @screen-lg){
}
的Gemfile
source 'https://rubygems.org'
ruby "2.0.0"
gem 'rails', '4.0.0'
gem 'uglifier', '>= 1.3.0'
gem 'sass-rails', '~> 4.0.0'
gem 'coffee-rails', '~> 4.0.0'
gem 'jquery-rails'
gem 'turbolinks'
gem 'jquery-turbolinks'
gem 'jbuilder', '~> 1.2'
gem 'sprockets-rails', :require => 'sprockets/railtie'
group :doc do
# bundle exec rake doc:rails generates the API under doc/api.
gem 'sdoc', require: false
end
gem 'html2haml', '~> 1.0.1'
gem 'haml-rails', '0.5.1'
gem 'bootstrap-sass', '~> 3.0.3.0'
gem 'figaro', '~> 0.7.0'
gem 'nokogiri', '~> 1.6.0'
gem 'paperclip', '~> 3.0'
gem 'paperclip-dropbox', '>= 1.1.7'
gem 'devise'
group :development do
# erubis is already included in action pack
gem 'ruby_parser', '~> 3.1.1'
end
group :development, :test do
gem 'sqlite3'
end
group :production do
gem 'pg'
gem 'rails_12factor'
#gem 'aws-sdk', "~> 1.0"
end
# Use ActiveModel has_secure_password
# gem 'bcrypt-ruby', '~> 3.0.0'
# Use unicorn as the app server
# gem 'unicorn'
# Use Capistrano for deployment
# gem 'capistrano', group: :development
# Use debugger
# gem 'debugger', group: [:development, :test]
答案 0 :(得分:2)
今天我遇到了同样的问题。我认为问题的根源在于你正在混合语法(Less vs sass)。
如果您正在编写使用@
运算符的面向较少的样式表变量。而使用scass编写样式表(我推断,因为文件名application.css.scss
)变量是使用$
引用的。
因此,您的样式表必须写成如下:
...
@import "bootstrap";
/* Small devices (tablets, 768px and up) */
@media only screen and (min-width: $screen-sm){
}
...