覆盖 Jquery Mobile CSS

Posted

技术标签:

【中文标题】覆盖 Jquery Mobile CSS【英文标题】:Override Jquery Mobile CSS 【发布时间】:2011-12-15 20:03:13 【问题描述】:

是否可以使用单独的自定义 css 文件覆盖已设置样式的 JQuery Mobile 元素(按钮、列表等)?

如果是这样,我将如何引用这些元素。

谢谢

【问题讨论】:

对人们了解非常有用。我可以看到这是自定义 UI 的绝佳工具。 ThemeRoller 已移至:- themeroller.jquerymobile.com 【参考方案1】:

是的,您可以覆盖已经在 jQuery mobile 中定义的所有 css 样式,但请看看如何以一种好的方式来实现。 jQuery 文档中的Theming overview 包含与您的问题相关的信息。特别是:

覆盖主题

主题旨在作为一个坚实的起点,但旨在 自定义添加自定义设计元素,使您的网站或 应用程序独特。由于一切都由 CSS 控制,因此很容易使用 用于识别您想要的样式属性的网络检查器工具 调整。主题类(全局)和语义结构的集合 添加到元素的类(特定于小部件)提供了一组丰富的 目标样式覆盖的可能选择器。 我们推荐 将外部样式表添加到头部,放置在结构之后 和主题样式表引用,其中包含您的所有样式 覆盖。这使您可以轻松更新到较新版本的 库,因为覆盖与库代码分开。

【讨论】:

【参考方案2】:

我不知道有什么正式的、优雅的方式来做,但是我在非最小 css 文件中查找类,然后将这样的内容添加到包含 之后的 .css 文件中jquery 移动版:

.ui-header .ui-title margin-right:20px;margin-left:20px;

.ui-footer .ui-title margin-right:20px;margin-left:20px;white-space:normal;

还有,firebug 和 dev。工具 (chrome) 是您的朋友 - 检查元素及其样式。

利比

【讨论】:

【参考方案3】:

对于在 JQM 中使用自己的样式存在巨大的误解,我在任何地方都发现了这种误解,包括 SO。在 JQM 中使用自己的 CSS 的诀窍在于如何编写自己的 CSS。通常,您必须首先指定您希望使用 id 覆盖 JQM CSS 的元素,然后将 JQM 类附加到该 ID。例如,要从图像链接中删除 JQM 标准链接边框 CSS,其中 #img_button_1 是赋予图像锚父级的 ID,您可以像这样编写 CSS...

html...

<a id="img_button_1" data-role="button" data-theme="none" data-corners="false" data-shadow="false" data-inline="true"
   href="http://www.google.com" target="_blank">
    <img src="http://www.google.com/images/srpr/logo1w.png"  />
</a>

您的覆盖 CSS...

#img_button_1 .ui-btn-inner  border: 0 

我之前用一些可以在这里找到的工作示例回答了这个问题

Jquery Mobile - Using image as link - Blue line below image

您可以使用相同的技术来解决所有 JQM CSS 冲突。现在您可以重新考虑使用 JQM 来实现您想要的结果,知道通过在您自己的 CSS 中使用 CSS 特定性来解决这些冲突是多么简单。希望这会有所帮助!

【讨论】:

我尝试使用类方法,但即使我的 css 是在 jquery mobile css 之后加载的,它也被覆盖了。使用 id 解决了这个问题。谢谢。【参考方案4】:

请务必查看每个新版本的发行说明。

关于 css 层次结构的变化有很多有用的东西。当然,这通常会随着每个版本的发布而变得更加稳定,但您可能需要了解一些内容。

1.4 CSS 升级文档: http://jquerymobile.com/upgrade-guide/1.4/#override-with-custom-css

【讨论】:

【参考方案5】:

这是一个老问题。有许多复杂的答案,但有一个简单而合乎逻辑的解决方案: 使用来自https://jquerymobile.com/download/的无主题css

【讨论】:

以上是关于覆盖 Jquery Mobile CSS的主要内容,如果未能解决你的问题,请参考以下文章

如何在 jQuery Mobile 中使覆盖面板后面变暗?

JQuery Mobile 1.4.5 - 被主题 css 覆盖的 ui-mini

如何在jQuery Mobile中覆盖面板后面变暗?

如何创建一个 jQuery Mobile 主题

单选按钮覆盖标签

JQuery Mobile 默认数据主题