我正在尝试向 jQuery Mobile 主题添加一个自定义类。CSS 应该如下所示:
.ui-icon-form-ok-f {
background-color: #f09000 !important;
data-icon: check !important;
}
但我怎样才能让 jQuery Mobile 识别这一点?谢谢。
我正在尝试向 jQuery Mobile 主题添加一个自定义类。CSS 应该如下所示:
.ui-icon-form-ok-f {
background-color: #f09000 !important;
data-icon: check !important;
}
但我怎样才能让 jQuery Mobile 识别这一点?谢谢。
当您设置[data-icon=AAA]
按钮时,jqm 在按钮<span class="ui-icon-AAA">
内部创建。
那是:
<a data-role="button" data-icon="form-ok-f">custom icon button</a>
加载此 html 时,jqm 创建如下:
<a href="#" data-role="button" data-icon="form-ok-f" data-corners="true" data-shadow="true" data-iconshadow="true" data-wrapperels="span" data-theme="c" class="ui-btn ui-shadow ui-btn-corner-all ui-btn-icon-left ui-btn-up-c">
<span class="ui-btn-inner ui-btn-corner-all">
<span class="ui-btn-text">custom icon button</span>
<span class="ui-icon ui-icon-form-ok-f ui-icon-shadow"> </span>
</span>
</a>
因此,jqm 可以识别您的自定义图标类。
.ui-icon-form-ok-f {
background-color: #f09000 !important;
background-position:-252px 50% !important; /* this mean 'data-icon="check"' on css */
}
<a data-role="button" data-icon="check ui-icon-alt">custom icon button</a>
Jqm 呈现黑色图标(Alt 图标颜色)而不是白色图标。
如果您想为任何主题的每个主题“自定义”图标,您应该像这样加载 js:
$(function(){
var $alttheme = new Array( "f", "g" ); // this arr means 'data-theme="f", data-theme="g"'
var at = new Array();
for( t in $alttheme ){
at.push(':jqmData(theme="' + alttheme[t] + '"):jqmData(icon="check") > span > .ui-icon');
}
$(at.join()).addClass('ui-icon-"YOUR CUSTOM NAMES"');
});
*您的自定义名称(例如,form-ok、form-ng ...)
或者
$(function(){
$(':jqmData(theme="f"):jqmData(icon="check") > span > .ui-icon').addClass('ui-icon-form-ok-f');
$(':jqmData(theme="g"):jqmData(icon="check") > span > .ui-icon').addClass('ui-icon-form-ok-g');
});
前者为“theme g”和“theme f”中的图标添加了相同的类,后者为“theme g”和“theme f”中的图标分别添加了一个单独的类。
我要准备一些样品。
我认为您还应该覆盖其他类,例如.ui-bar-f
, .ui-body-f
, .ui-btn-up-f
,... 然后使用data-theme="f"
每个标签的属性来指定您要为组件使用这个新主题,但我还没有设法对其进行测试。
更多信息在关于主题的 jQuery-Mobile 文档中。
希望能帮助到你!