Lor*_*o B 2 css jquery html5 overriding jquery-mobile
我是jQuery Mobile的新手,据我所知,它包括两个不同的css部分:一个是主题,另一个是结构.
如果您需要设置特定组件的样式,您可以利用Theme Roller(或者只是创建自己的主题),然后指定主题data-theme="myTheme".相反,该结构允许管理元素的排列方式,布局等.它在所有元素之间共享.
基于此,我想知道是否有可能遵循一些规则,以正确的方式覆盖元素的结构.特别是,我的方法是找到链接到特定元素的css结构,复制它并粘贴到我的自定义css结构中.显然,通过这种方式,我可以影响不需要该自定义结构的其他元素的结构.
那么,实现这一目标的正确方法是什么?
编辑
根据@ Gajotres的回答.
哪里.custom-btn来的?我认为有必要防止其他按钮使用该颜色设置样式.我错了吗?但是在你的代码片段中,该按钮没有该类.
如果我打开jQuery Mobile提供的主题css文件,我可以看到一个结构.与结构css文件中包含的内容有什么不同?
jQuery Mobile有3个css文件.我将使用jQuery Mobile 1.3作为参考点来撰写有关此主题的内容.
第一个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="".
如果您想了解更多有关这种差异的信息,请查看我的其他答案.
首先需要的是一个工具,它将向您展示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>
Run Code Online (Sandbox Code Playgroud)
不是最终页面结果.在pagecreate事件之后(和pageinit事件之前),jQuery Mobile正在触发HTML标记增强过程.因此,最终结果或多或少会有所不同.
让我们看一下jQuery Mobile按钮示例,在增强之前它看起来像这样:
<a href="#" data-role="button">Link button</a>
Run Code Online (Sandbox Code Playgroud)
增强后它看起来像这样:
<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>
Run Code Online (Sandbox Code Playgroud)
这就是我们需要其他工具的原因,以便我们可以看到最终的HTML结
有了这个可以继续进行.
如果要覆盖jQuery Mobile CSS定义,则需要学习使用!important.虽然这通常很大,否则我们不能没有它.
让我们说我们想要更改按钮文本颜色(从前一个按钮示例)我们会这样做:
.custom-btn .ui-btn-inner .ui-btn-text {
color: #013301 !important;
}
Run Code Online (Sandbox Code Playgroud)
还有一件事,你可以随时更改原始的jQuery Mobile移动结构,但我建议你反对它.
如果您想了解更多有关此主题的信息,请查看我正在讨论此主题的博客文章(使用jsFiddle实例).
这个答案也可以在这里找到+工作实例,更透明,这是我的个人博客.
| 归档时间: |
|
| 查看次数: |
2192 次 |
| 最近记录: |