我在这里在黑暗中拍摄,因为我看不到您的其余标记。
我在http://jsfiddle.net/a9f22n70/1/上模拟了我认为你的意思的小提琴。加载时,我看到面板元素(由 jQuery mobile)添加了一堆类,这些类导致我在桌面上出现布局问题。我在加载时删除了所有类并重新添加了“ui-panel”类。这为我清理了一切。
我用来测试的标记是:
<div data-role="panel" data-position="left" data-display="overlay" data-theme="a"id="add-form" style="width:50%; max-width:500px;background:red;" data-position-fixed="true">
<a href="index.html" data-role="button">Link button</a>
</div>
jQuery(很简单)如下:
$(document).ready(function(){
$("#add-form").attr("class","").addClass("ui-panel");
})
同样,我假设您只想定位 #add-form 元素。
正如他们所说,假设是一切之母……所以希望我一针见血!
更新
在检查了小提琴中的代码之后,问题(对我来说)是面板上存在“ui-panel-dismiss”类。删除这个类(通过我的检查工具进行测试)纠正了这个问题。
这有点 hack,但是您可以在页面加载后使用 jQuery 从面板中删除此类,使用该removeClass();
函数。
编辑
这是一个解决问题的工作小提琴:http: //jsfiddle.net/smoewxd4/3/
最终判决
您在评论中提出的 CSS 解决方案有效,但会导致所有面板都设置为 50% 宽。我建议使用这个 CSS 选择器来使其特定于#add-form 元素,并且还消除使用!important:
#add-form.ui-panel.ui-panel-dismiss{
width:50%;
}