I had a similar problem, I needed to control the size of the dialog box and do modeless ones - so that the back page is visible at the back. Fil's method works fine, however you need to make the background container transparent, and also make the calling page in the DOM and still visible (starting from beta 2, the DOM is automatically cropped, so the page that calls the dialog is removed from the DOM when you show the dialog)
The first step was to make the overlay transparent for any theme you use, for example
.ui-body-a, .ui-body-a input, .ui-body-a select, .ui-body-a textarea, .ui-body-a button { background-color: transparent; font-family: Helvetica, Arial, sans-serif; }
Then, to keep the calling page visible, make sure it is cached in the DOM by adding data-dom-cache="true" to your call page, and I found that you also had to override the display and z-index styles (and of course , width) to make sure that it remains visible behind the dialog, for example
<div id='homePage' data-role="page" data-theme='a' data-dom-cache="true" style='display:block !important;z-index: 0;width:300px'> <div data-role="header" data-theme='a'><h1>Header</h1></div> <div data-role="content" data-theme='a' style='margin:0; padding: 0'> <a href="#testdialog" data-role="button" data-rel="dialog" data-transition="pop">Open Dialog</a> </div> </div>
You can also cache every page in the DOM, rather than adding data-dom-cache="true" to each page by calling;
$.mobile.page.prototype.options.domCache = true;
But that seems pretty heavy.
Edit:
Another possible way to adjust the width / height is found, you can simply change the dialog fields;
.ui-dialog .ui-header, .ui-dialog .ui-content, .ui-dialog .ui-footer { margin-left: 100px; margin-right: 100px; }
You still need to do what I mentioned to keep the previous page behind!