jquery – Twitter Bootstrap modal将html内容推向左侧

前端之家收集整理的这篇文章主要介绍了jquery – Twitter Bootstrap modal将html内容推向左侧前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
如果我打开一个模态对话框,通过Twitter Bootstrap,我注意到它把页面的所有html内容(即在容器中)向左一点,然后在关闭后恢复正常。然而,这仅在浏览器宽度足够大而不在“移动”(即,最小)媒体查询上时发生。这发生在最新版本的FF和Chrome(尚未测试其他浏览器)。

你可以在这里看到问题:http://jsfiddle.net/jxX6A/2/

注意:您必须增加“结果”窗口的宽度,以便切换到“med”或“large”媒体查询css。

我已经基于Bootstrap网站上显示的示例设置页面的HTML:

<div class='container'>
    <div class='page-header'>
        <h4>My Heading</h4>
    </div>
    <div id='content'>
        This is some content.
    </div>
    <div class='footer'>
        <p>&copy; 2013,me</p>
    </div>
</div>

我猜这不应该发生,但我不知道我做错了什么。

编辑:这是一个已知的错误,更多(和最新)的信息,请参阅:https://github.com/twbs/bootstrap/issues/9855

解决方法

对于引导3.x.x.

我找到了一个解决方案,使用100%的CSS,没有JavaScript。

诀窍是,在html内容的滚动条上显示模态的滚动条。

CSS:

html {
  overflow: hidden;
  height: 100%;
}
body {
  overflow: auto;
  height: 100%;
}

/* unset bs3 setting */
.modal-open {
 overflow: auto; 
}

这里是一个在线的例子:http://jsbin.com/oHiPIJi/43/

我在Windows 7上测试它:

> FireFox 27.0
> Chrome 32.0.1700.107 m
> IE 11在浏览器模式下8,9,10,Edge(桌面)
> IE 11在浏览器模式8,9,10,Edge(windows phone)

一个新的小问题,我可以找到与IE:

IE有背景(= body)滚动鼠标滚轮,如果没有更多的在前台滚动。

关心位置:固定!

由于此解决方法的性质,您需要额外注意固定元素。
例如,“navbar fixed”的填充需要设置为html而不是body(如何描述in bootstrap doc)。

/* only for fixed navbar: 
* extra padding stetting not on "body" (like it is described in doc),* but on "html" element
* the used value depends on the height of your navbar
*/
html {
  padding-top: 50px;
  padding-bottom: 50px;
}

替代与包装

如果你不喜欢设置overflow:hidden on html(有些人不想要这个,但它的工作,是有效的和100%标准兼容),你可以包裹的body的内容在一个额外的div。

比你不需要额外关心固定的元素,你可以像以前一样使用它。

body,html {
  height: 100%;
}
.bodywrapper {
  overflow: auto;
  height: 100%;
}

/* unset bs3 setting */
.modal-open {
 overflow: auto; 
}

/* extra stetting for fixed navbar,see bs3 doc
*/
body {
  padding-top: 50px;
  padding-bottom: 50px;
}

这里是一个例子:http://jsbin.com/oHiPIJi/47/

更新:

Bootstrap中的问题:

> #12627
> #9855

更新2:FYI

在Bootstrap 3.2.0中,他们为modal.js添加了一个解决方法,它试图处理modal.prototype.show(),Modal.prototype.hide()和Modal.prototype.resize()的每次调用的问题。他们添加了7(!)新的方法。现在约。 20%的代码从modal.js只尝试处理这个问题。

猜你在找的jQuery相关文章