Bootstrap / Bootbox:仅为特定模态更改模态宽度

时间:2014-08-10 09:48:16

标签: jquery css twitter-bootstrap bootbox

我正在使用 Bootbox 4和IE上的Bootstrap 3 (IE 8 / IE 9),一切正常。

在Bootstrap 3中,您可以按如下方式在CSS中设置模态宽度,但是,这样的任何内容都会改变我的所有模态:

.modal-dialog {
    width:70% !important;
}

CSS,jQuery或Bootbox设置中是否有一种方法可以仅针对一个特定模式更改Bootbox警报模式的宽度? Bootbox页面只有很短的文档,我无法在其他任何地方找到相关信息。

更新 - 创建特定模式的JS(带有示例数据):

bootbox.dialog({
    message: " \
        <table class='table table-hover'> \
            <thead> \
                <tr> \
                    <th>Item Name</th> \
                    <th>Location</th> \
                    <th>Path</th> \
                    <th>Last Update</th> \
                </tr> \
            </thead> \
            <tbody> \
                <tr> \
                    <td>Item 1</td> \
                    <td>Navbar - Level 2</td> \
                    <td>Products - blabla</td> \
                    <td>Added by xxx on 05 Aug 2014</td> \
                </tr> \
            </tbody> \
        </table>",
    title: "Search Results",
    buttons: {
        main: {
            label: "Close",
            className: "btn-primary"
        }
    },
    className: "modal70"
});

我目前的CSS:

.modal-dialog.modal70 {
    width:70% !important;
}

非常感谢你提供任何帮助,蒂姆。

3 个答案:

答案 0 :(得分:14)

试试这个:

.modal70 > .modal-dialog {
    width:70% !important;
}


更新

Try Demo

答案 1 :(得分:5)

正如进一步的信息......

正如文档所述,您可以在构造函数中使用“size”属性控制模态的大小。

  

将相关的Bootstrap模态大小类添加到对话框包装器中   有效值为“大”和“小”(默认值:null)

bootbox.dialog({
    size: <small|large>
});

请参阅代码段的使用示例(最佳全屏显示)

$(".size-by-funcion-0").click(function() {
    bootbox.dialog({
        size: "null",
        title: "Default Size Modal Example",
        message: "...",
    });
});

$(".size-by-funcion-1").click(function() {
    bootbox.dialog({
        size: "small",
        title: "Small Size Modal Example",
        message: "...",
    });
});

$(".size-by-funcion-2").click(function() {
    bootbox.dialog({
        size: "large",
        title: "Large Size Modal Example",
        message: "...",
    });
});

/*********************/
// or make it dynamic... with only one function
$(".dynamic-size").click(function() {
    bootbox.dialog({
        size: $(this).data('size'),
        title: "Dynamic Size Modal Example",
        message: "...",
    });
});
p {
    cursor: pointer;
    background-color: #ccc;
}
<script type="text/javascript" src="//code.jquery.com/jquery-2.1.0.js"></script>
<script type="text/javascript" src="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
<link rel="stylesheet" type="text/css" href="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
<script type="text/javascript" src="https://github.com/makeusabrew/bootbox/releases/download/v4.3.0/bootbox.min.js"></script>

<p class="size-by-funcion-0">Modal with the default size</p>
<p class="size-by-funcion-1">Modal with "size:small"</p>
<p class="size-by-funcion-2">Modal with "size:large"</p>

<hr />

<p class="dynamic-size" data-size="null">Modal with "size:default"</p>
<p class="dynamic-size" data-size="small">Modal with "size:small"</p>
<p class="dynamic-size" data-size="large">Modal with "size:large"</p>

有关来源的更多信息:http://bootboxjs.com/documentation.html

  

注意:需要Bootstrap 3.1.0或更新版本。

答案 2 :(得分:0)

如果Moshtaf的解决方案不起作用,请再增加一行:

.modal70 > .modal-dialog {
    width:70% !important;
    max-width:70% !important;
}

这是因为Bootbox也包含max-width的默认值,该默认值可能会覆盖width的定义。