【问题标题】:how to customize a jquery mobile dialog如何自定义一个jquery移动对话框
【发布时间】:2012-02-09 08:50:12
【问题描述】:

如何删除对话框的默认格式并应用我自己的 CSS?

我的尝试效果不佳...

<div data-role="dialog" id="confirm-clear" class="dialog-custom" >
    <div data-role="content" >
        <p>Some text.</p>
        <p><a href="#" data-role="button" data-inline="true">Yes</a><a href="#" data-role="button" data-inline="true" data-rel="back">No</a></p>
    </div>
</div>

编辑: 在我的 CSS 中:

.ui-dialog.dialog-custom {

background: repeat scroll 0 0 rgba(0,0,0,.5);

height:200px; /* this doesn't do anything */
}

【问题讨论】:

    标签: jquery css jquery-mobile jquery-ui-dialog


    【解决方案1】:

    jQM 使用多种样式来实现其主题化,例如 webkit 渐变和背景位置偏移的背景图像。它还将一些元素包装在 div 中或插入 span 等以进行布局。

    首先,您需要使用调试器(例如 Chrome 的开发人员工具)并检查对话框,在计算样式下,您可以查看您的样式以及它们是否被覆盖或其效果。您还可以查看 jQM 插入的任何额外布局元素并关闭 jQM 的样式,直到您的样式生效。

    现在您可以通过使用 !important 或修改 jQM 的 CSS 文件来开始覆盖 jQM 的样式

    【讨论】:

    • 请参阅原帖中的编辑。如何让 div 不占据屏幕的整个高度?
    • 这不容易编辑,为什么需要?就像 Jasper 所说,jQM 会覆盖高度,对话框是为了占据整个屏幕,无论如何它都是模态的。 jQM 还处理跨移动浏览器问题,因此不能保证您通过编辑 jQM 的调整大小事件的解决方案适用于所有手机。我已经学会了只使用我所拥有的东西,即使使用 jQM(例如 Android Firefox 上的按键),你仍然会发现足够的差异来谨慎编辑 jQM
    【解决方案2】:

    CSS 默认使用最独特的选择器,而 jQuery Mobile 可能使用更独特的选择器。您可以使用 !important 关键字来确保使用您的 CSS 声明:

    .ui-dialog.dialog-custom {
        background : repeat scroll 0 0 rgba(0,0,0,.5);
        height     :200px !important;
    }
    

    如果您使用 Chrome Dev Tools 或 Firebug 等开发人员工具检查元素,您可以看到正在应用的样式以及它们来自什么 CSS 规则。这将帮助您确定向现有框架添加样式的最佳方式。

    我不确定对话框,但对于页面小部件,元素的 min-height CSS 属性是通过 jQM 框架更改的。您可以通过覆盖对话框的 jQM resize 事件处理程序来解决此问题。

    【讨论】:

    • 感谢您的回复。 !important 没有帮助。你能解释一下如何“通过覆盖对话框的 jQM 调整大小事件处理程序来解决这个问题。”
    • Firebug 只是在对话框中显示这个: element.style { height: 687px; },随着窗口大小的调整而变化。
    • @soleil 我想最简单的方法是将事件处理程序绑定到resize 对象的window 事件,该对象有超时来调整对话框的大小. $(window).bind('resize', function () {setTimeout(function () { $('#my-dialog').height(200); }, 500);})
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-02-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-16
    • 1970-01-01
    相关资源
    最近更新 更多