Диалог jQuery: как управлять высотой панели кнопок - PullRequest
2 голосов
/ 20 мая 2011

Как вручную отрегулировать / установить высоту панели кнопок в диалоговом окне jQuery без изменения файла CSS?Я хочу настроить высоту DIV, содержащего сообщение, и DIV, который содержит кнопку (отмечена зелеными линиями) из Javascript.

jQuery Dialog

function showMessageDialog(title, message, width){
     // create div if it doesn't exist already
     if(!$("#msgDialogDiv").length) {
         $("<DIV></DIV>").appendTo("body").attr("id","msgDialogDiv");
     }
     // set the message
     $("#msgDialogDiv").html(message).css("color","red");

     // show the dialog
     $("#msgDialogDiv").dialog({
        modal: true, resizable: false, draggable: false, title: title, width: width,
        buttons: {OK: function(){$(this).dialog("close");}}
      });

      // This changes the height as I want.
      // $("#msgDialogDiv").css({"overflow":"hidden","height":"10px"});
      // this changes the font on button
      //$("#msgDialogDiv").dialog("widget").find(".ui-button-text").css("font-size", "11px");
      return;
}

showMessageDialog("Hello Stackoverflow!", "This is my first question on stackoverflow",400);

Во время публикации этогоВопрос, который я попытался отрегулировать высоту DIV, и это сработало.Я также попытался изменить размер шрифта кнопки, но это только меняет размер кнопки.Я хочу контролировать размер всего этого DIV.Это из-за отступа вокруг кнопки?

Ответы [ 4 ]

6 голосов
/ 20 мая 2011

Нашел сам.Это то, что я искал.

// set the size of the button
$("#msgDialogDiv").dialog("widget")
                  .find(".ui-button-text").css("font-size", "10px")

// this is not required. but doesn't hurt. To hardcode the height, 
// just change to height instead of minHeight
//$("#msgDialogDiv").css({"minHeight":"10px"})

// button pane style
$("#msgDialogDiv").dialog("widget").find(".ui-dialog-buttonpane")
                  .css({"padding":".1em .1em .1em 0","margin":"0 0 0 0"} )

// button style
$("#msgDialogDiv").dialog("widget").find("button")
                  .css({"padding":"0 .2em 0 .2em","margin":"0 .5em 0 0"} )
5 голосов
/ 20 мая 2011

Поместите следующее в свой собственный файл CSS, загруженный после CSS jQuery UI:

.ui-dialog .ui-dialog-buttonpane {
    margin: 0px;
    padding: 0px;
}

Двойной селектор необходим из-за правил специфичности CSS . Без префикса .ui-dialog вы не сможете переопределить ранее загруженный по умолчанию.

См. http://jsfiddle.net/alnitak/UQAqg/

0 голосов
/ 11 января 2019

Это старый пост.Но это также можно сделать следующим образом.

Допустим, у вас есть следующий div в html

<div id="no-record-found-message" title="No Record found" >
    <p>No Record found for the selected event</p>
</div>

В Js при создании диалога назначается класс

function createNoRecordFoundDialog(div) {

    var $noRecordFoundDiv = $("#" + div);

    var $noRecordFoundDialog = $noRecordFoundDiv.dialog({
        autoOpen: false,                // set this to false so we can manually open it
        dialogClass: "noRecordFound",   // your css class
        width: 250,
        show: {
            effect: "scale",
            duration: 1000
        },
        hide: {
            effect: "scale",
            duration: 1000
        },
        modal: true,
        resizable: false,
        buttons: {
            Ok: function() {
                $( this ).dialog( "close" );
            }
        }
    }); // end of dialog

    return $noRecordFoundDialog;
}

css

.noRecordFound .ui-dialog-buttonpane {
    margin: 0px !important;
    padding: 0px !important;
}

.noRecordFound .ui-dialog-content {
    min-height: 38px !important;
}
0 голосов
/ 20 мая 2011

Просто измените файл jQueryUI.css

...