介绍
jQuery Mobile 有 3 个 css 文件。我将使用 jQuery Mobile 1.3 作为参考点来撰写有关此主题的文章。
CSS 文件差异
第一个 CSS 文件,也是一个主要文件:jquery.mobile-1.3.2.min.css
它拥有 jQuery Mobile 结构和主题样式
第二个 CSS 文件只是 jQuery Mobile 结构文件,它包含构建页面和小部件结构所需的 CSS:jquery.mobile.structure-1.3.2.css
第三个仅包含主题样式,可用于创建新色板:jquery.mobile.theme-1.3.2.css
主题与斯沃琪
这是您需要了解的下一件事。jQuery Mobile 只有 1 个主题,但有几个色板。
可以使用data-theme=""
属性更改色板。不要问为什么不叫它data-swatch=""
。
如果您想了解有关此差异的更多信息,请查看我的其他答案。
CSS 覆盖
你需要的第一件事是一个工具,它将向你展示 jQuery Mobile HTML 和 CSS 结构。
对于 Firefox 浏览器,使用 Firebug 插件进行实时 HTML / CSS 操作。它将使您能够查看增强的页面标记、动态更改 CSS(如果您想在不手动执行更改的情况下查看应用更改时会发生什么,则更容易)并复制内部 HTML 结构。
Chrome 也有一个 firebug 插件,但你应该避开它。它是 Firefox firebug 的轻量级版本,同时 Chrome 有一个出色的内置工具,称为“开发者工具”。它可以通过 CTRL + SHIFT + I 组合轻松调用。Macintosh 用户可以使用以下组合打开它: Command + Option + i 。
我最后的建议是坚持使用 Chrome 开发者工具,Firebug 插件以资源极度匮乏着称。
考虑到这一点,您需要知道另一件事。你可以在这里看到一个基本的 jQuery Mobile 页面架构:
<div data-role="page">
<div data-role="header">
<!-- Inner content -->
</div>
<div data-role="content">
<!-- Inner content -->
</div>
<div data-role="footer">
<!-- Inner content -->
</div>
</div>
不是最终页面结果。就在 pagecreate 事件之后(和 pageinit 事件之前)jQuery Mobile 正在触发 HTML 标记增强过程。所以最终结果看起来或多或少会有很大不同。
让我们看一个 jQuery Mobile 按钮示例,在增强之前它看起来像这样:
<a href="#" data-role="button">Link button</a>
增强后是这样的:
<div data-corners="true" data-shadow="true" data-iconshadow="true" data-wrapperels="span" data-theme="c" data-disabled="false" class="ui-btn ui-shadow ui-btn-corner-all ui-btn-up-c" aria-disabled="false">
<span class="ui-btn-inner">
<span class="ui-btn-text">Classic HTML button</span>
</span>
<input type="button" value="Classic HTML button" class="ui-btn-hidden" data-disabled="false"/>
</div>
这就是为什么我们需要额外的工具才能看到最终的 HTML 结构。
有了这个可以进一步进行。
如果你想覆盖 jQuery Mobile CSS 定义,你需要学习使用 !important。虽然这通常很大,但我们不能没有它。
假设我们要更改按钮文本颜色(来自之前的按钮示例),我们会这样做:
.custom-btn .ui-btn-inner .ui-btn-text {
color: #013301 !important;
}
还有一件事,您可以随时更改原始 jQuery Mobile 移动结构,但我建议您不要这样做。
如果您想了解有关此主题的更多信息,请查看我正在讨论该主题的博客文章(使用 jsFiddle 示例)。
最后但并非最不重要的
这个答案也可以在这里找到+工作示例,更透明的是我的个人博客。