我的 jQuery-Mobile 站点出现布局问题,该问题仅在将 Google Chrome 更新到版本 26 后才开始出现。我页面的基本布局如下:两个窗格,“desktopSideBar”和“desktopContentPane”,每个都包含自己的标题。
<div data-role="page" data-theme="b" position="fixed">
<div id="desktopSideBar">
<div id="mobile_navigation_content">
<div class="ui-bar-a ui-header" data-position="inline" id="navigationHeader">
<a class="ui-btn-left" data-icon="back" data-iconpos="notext" data-inline="true" data-mini="true" data-role="button" data-theme="b"></a>
<h4>First Header</h4>
</div>
</div>
</div>
<div id="desktopContentPane">
<div class="ui-bar-a ui-header" data-position="inline" id="contentToolbar">
<a class="ui-btn-left" data-icon="arrow-l" data-inline="true" data-mini="true" data-role="button" data-theme="b">Hide</a>
<h4>Second header</h4>
<a class="ui-btn-right" data-icon="gear" data-iconpos="notext" data-inline="true" data-mini="true" data-role="button" data-theme="b"></a>
</div>
</div>
</div>
显然,这种类型的东西并没有完全内置到 jQM 框架中,所以我必须添加一些 JavaScript 代码来正确定位和调整窗格及其标题的大小。
问题出在右侧的标题中,标题的标题和最右边的按钮堆叠在其左侧。在 Firefox 或 IE 中打开小提琴将显示所需的布局。
奇怪的是,Chrome 似乎仍然知道元素应该在哪里。单击带有齿轮图标的按钮将立即使其向右移动,如果您右键单击标题并选择“检查元素”,则可以通过取消选中并选中某些 css 样式来使整个标题栏自行修复<div class="ui-header">
标签上。
我首先要寻找的是,任何想法在 Chrome v.26 中可能发生的变化可能会导致这种情况,因为这将帮助我找到问题的根源。
我也不介意有人真的知道问题的根源是什么,因为目前我的解决方法是将其添加到调整大小的代码中:
setTimeout(function () {
$("#contentToolbar").removeClass("ui-header").find("h4").css("text-align", "left");
setTimeout(function () {
$("#contentToolbar").addClass("ui-header").find("h4").css("text-align", "center");
}, 5);
}, 500);
...当元素重新定位时会导致明显的闪烁。
谢谢!