我能同时使用两者吗?会导致带宽过载吗?
请查看jquery-ui-bootstrap。以下是自README中的内容:
Twitter的Bootstrap是我最喜欢的2011年项目之一,但是经常使用后,我想要两件事情:
能够与jQuery UI并行工作(这导致了许多小部件在视觉上出现问题);能够使用Bootstrap样式主题化jQuery UI小部件。虽然我喜欢jQuery UI,但我(和其他人一样)发现一些当前的主题看起来有点过时。我的希望是这个主题为其他有同感的人提供一个不错的替代选择。需要澄清的是,这个项目并不旨在取代Twitter Bootstrap。它仅提供了一个受Bootstrap设计启发的jQuery UI兼容主题。它还提供了一个版本的Bootstrap CSS,其中有一些(次要的)部分被注释掉,以使该主题可以与之并行工作。
仅作更新,Bootstrap v2不再与jQuery UI冲突。
https://github.com/twbs/bootstrap/issues/171
编辑:正如@Freshblood所述,仍然有一些冲突。但是,Twitter最初的帖子表明他们正在解决这个问题,而且它大部分运作良好,尤其是与v1相比。
为了以后的参考(因为这是 Google 目前的最佳答案),要防止 jQuery UI 覆盖 Bootstrap 或您自定义的样式,您需要创建一个自定义下载,并选择 no-theme
主题。这将仅包括 jQuery UI 的重置,并不会为各种元素超载 Bootstrap 样式。
顺带一提,一些 jQuery UI 组件(如日期选择器)具有本地的 Bootstrap 实现。本地的 Bootstrap 实现将使用 Bootstrap CSS 类、属性和布局,因此应该与框架的其他部分更好地集成。
根据我的有限经验,我也遇到了一些问题。似乎可以使用Bootstrap CSS样式对JQuery元素(如按钮)进行样式设置。然而,我创建了一个JQuery UI标签,并想要将一个仅使用Bootstrap input-append类的输入框锁定在每个标签底部时,只有第一个标签位置正确。因此,结合使用JQuery tabs和Bootstrap buttons可能不太可行。
Bootstrap仍然无法与Jquery UI一起使用,例如modal。Bootstrap具有漂亮的样式,但作为由Twitter支持的框架并不是那么好。
<head>
...etc...
<link rel="stylesheet" href="css/font-awesome.min.css">
<link rel="stylesheet" href="css/cupertino/jquery-ui-1.9.2.custom.min.css">
<link rel="stylesheet" href="css/bootstrap-3.3.7.min.css">
<!-- <script src="js/jquery-1.9.1.min.js"></script> -->
<script src="js/jquery-2.1.4.min.js"></script>
<script src="js/jquery-ui-1.9.2.custom.min.js"></script>
<script src="js/bootstrap-3.3.7.min.js"></script>
...etc...
</head>
对于那些感兴趣的人,CSS文件夹长这样:
[css]
- bootstrap-3.3.7.min.css
- font-awesome.min.css
- style.css
- [cupertino]
- jquery-ui-1.9.2.custom.min.css
[images]
- ui-bg_diagonals-thick_90_eeeeee_40x40.png
- ui-bg_glass_100_e4f1fb_1x400.png
- ui-bg_glass_50_3baae3_1x400.png
- ui-bg_glass_80_d7ebf9_1x400.png
- ui-bg_highlight-hard_100_f2f5f7_1x100.png
- etc (8 more files that were in the downloaded jQUI zip file)
如果不将它们存储在本地并使用提供的链接,您可能会获得更好的性能。在某些情况下,客户端可能已经缓存了脚本。至于jQueryUI的情况,我建议只有在必要时才加载它。 它们都被最小化了,但是您可以启动控制台并查看网络选项卡,以查看其加载时间。一旦它被初始下载,它将被缓存,因此您不必担心之后的问题。我的结论是,是的,同时使用它们,但使用CDN。
是的,你可以同时使用它们。Twitter 的 js bootstrap 是一组 jQuery 插件。它不应该与 jQuery UI 产生任何冲突。
关于带宽过载,这实际上取决于你如何处理加载所有 js 文件的请求。如果你真的不想向服务器发出多个请求来请求每个文件,只需将它们连接在一起并最小化即可。或者你可能可以摆脱一些你不需要的 js bootstrap 插件。它非常模块化。
!important
,我发现自己经常不得不覆盖和修复这些更改,有时候还要用一些笨拙的代码。我讨厌 Bootstrap,并且不鼓励使用它,至少在它停止干扰不使用 Bootstrap 类的元素之前。(这并不是原始设计师的错,我怀疑 Twitter 的原始开发人员没有预料到他们所开发的东西会成为一个流行的库。) - Michael Scheper