如何使用Twitter中的Bootstrap样式表和Rails中的现有样式表而不会弄乱一切?

所以我在我的Rails应用程序中包含了样式表的URL,但它将所有内容都抛入了haywire。

我把它包括在内:

 'all') %> 

我想要做的是,当我将类应用于html标记时,只应用Twitter样式。 理想情况下,我想要做的是让它甚至覆盖我的“样式”表中的样式 – 这是我整个应用程序的样式表。

是否可以以简单的方式完成此操作,而无需为我想要使用的每个元素修改样式?

看看http://twitter.github.com/bootstrap/1.4.0/bootstrap.css ,你会发现它定义了root html元素的重置和样式。

例如:

 h1 { margin-bottom: 18px; font-size: 30px; line-height: 36px; } 

因此,如果您的style.css已经为h1定义了样式,或者如果您的布局希望h1具有不同的边距,那么您的布局将不会像预期的那样。

Twitter引导程序通常用于启动项目时,而不是可以完全插入现有项目的样式表而没有任何问题。

另一种方法是使用他们的LESS样式表,如果你想包括,例如,只包括表单和表格样式。 ( 使用Bootstrap with Less )。

    

你不会想要使用lib/boostrap.less因为包含了所有内容,但是你可以包含适合你的其他LESS样式表。 请注意,仅包含twitter boostrap的子集,可能无法按预期工作,特别是如果您没有定义css重置。 如果这对您不起作用,请考虑使用Preboot.less 。 注意: Rails 3.1支持LESS编译

如果您仍想在应用程序中使用完整的twitter bootstrap css,则可以创建一个使用twitter引导程序的新的rails布局模板。 然后,使用twitter boostrap构建新页面,指定render :layout => "boostrap"或类似的东西,让你的新页面使用twitter bootstrap布局。 然后,当您准备好后,您可以将旧页面迁移到新的布局模板。

我认为你需要改变css加载的顺序..

在您的情况下,使用bootstrap覆盖您的应用程序样式表

首先加载你的应用程序样式表然后再加载bootstrap.css

  <%= stylesheet_link_tag :default %> 

然后

  <%= stylesheet_link_tag ('http://twitter.github.com/bootstrap/1.4.0/bootstrap.min.css', :media => 'all') %> 

您可以从twitter github自定义工具Customize Bootstrap中自定义引导程序

仅选择您选择的项目并下载自定义版本。

很长一段时间我也在寻找这样的东西,现在我做了并帮助了我很多。

你可以使用less或sass mixins来达到这个目的,boostrap提供了一些不错的选择。

例如 :

  
...
article { .makeRow(); section.main { .makeColumn(10); } aside { .makeColumn(2); } }

有关更多详细信息,请参阅http://ruby.bvision.com/blog/please-stop-embedding-bootstrap-classes-in-your-html ,以及http://www.sitepoint.com/5-useful-sass- mixins-bootstrap /以及https://github.com/twbs/bootstrap-sass/tree/master/assets/stylesheets/bootstrap/mixins