jQuery UI对话框调整大小会中断内容宽度



我这里有一个奇怪的bug,我有一些想法可能是什么原因导致的。首先让我告诉你这个问题。

每当我调整对话框的大小时,"ui对话框内容"的宽度都会更改为小于对话框其余部分的宽度。这很难解释,所以我创建了一个短视频,展示了这个问题,以及如何在调整大小时删除jQuery添加的"width"属性,从而解决了这个问题。

视频:http://www.screencast.com/t/3oczroeEZUg

我发现Bootstrap 3和jQuery UI一起使用是个问题。我删除了Bootstrap 3样式表(它破坏了我的整个网站设计),它解决了这个问题。这意味着两者之间存在冲突的CSS。

我不确定该添加什么代码来帮助您找到解决方案。我只使用jQuery UI和Bootstrap 3。我想我只是希望其他人以前也遇到过这个问题,可以帮助我找到解决方案,我尝试过搜索,但没有找到任何东西,我可能只是没有搜索到正确的关键词。

编辑:我已经在引导.css 中跟踪了这些行的问题

* {
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
}
*:before,
*:after {
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
}

现在就在对话框上查看如何覆盖它,因为删除这些代码会破坏我的整个网站。

我找到了一个解决方案,它不是100%完美的,但它做得足够好。

正如我帖子中的编辑所说,这个问题是由Bootstrap 3中的CSS引起的。

* {
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
}
*:before,
*:after {
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
}

我创建了一个文件,并在包含bootstrap之后包含它,bootstrap仅覆盖对话框的这些设置。

.ui-dialog-content {
    -webkit-box-sizing: content-box;
    -moz-box-sizing: content-box;
    box-sizing: content-box;
}

这主要导致对话框的行为。一些问题仍然存在,尽管它们是小问题。

  1. 中间部分现在仍然有大约5个像素太宽。如图所示:http://www.screencast.com/t/0nzFa9Kd
  2. 每次你点击并调整框的大小时,按钮区域都会被切掉大约5-10个像素。最终,按钮几乎被完全隐藏,如下所示:http://www.screencast.com/t/EbNT7JjGX

相比之下,这些问题是次要的,所以现在我将忽略它们。希望这能帮助其他人!

根据我对覆盖上述样式的理解,您可以通过在绑定对话框的地方添加一个类来向div添加样式。请注意,您应该使用自定义类,而不是重写内部类标记。

.divClass{
    -webkit-box-sizing: initial;
    -moz-box-sizing: initial;
    box-sizing: initial;
}
.divClass:before,
.divClass:after {
    -webkit-box-sizing: initial;
    -moz-box-sizing: initial;
    box-sizing: initial;
}

din没有用jqueryui和bootstrap测试过它,但我想它应该可以工作。框大小属性初始值应适用于更多属性检查此项:http://www.w3schools.com/cssref/css3_pr_box-sizing.asp

.ui-dialog,ui-dialog-conent {
       -webkit-box-sizing: content-box!important;
       -moz-box-sizing:content-box!important;
       box-sizing: content-box!important;
}

这只是我的工作!

最新更新