如何改变jquery mobile footer的背景颜色?

时间:2013-04-01 04:25:49

标签: jquery ios css cordova jquery-mobile

我正在使用jquerymobile为iOS构建PhoneGap应用程序,我尝试更改jquerymobile的背景但我不能。 这是我的html源代码:

<!DOCTYPE html>
<html>
    <head>
        <title></title>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <meta name="format-detection" content="telephone=no" />
        <meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width, height=device-height, target-densitydpi=device-dpi" />

        <link rel="stylesheet" href="http://code.jquery.com/mobile/1.2.1/jquery.mobile-1.2.1.min.css" />

        <script src="http://code.jquery.com/jquery-1.8.3.min.js"></script>
        <script src="http://code.jquery.com/mobile/1.2.1/jquery.mobile-1.2.1.min.js"></script>
        <script type="text/javascript" src="../../js/cordova-2.5.0.js"></script>
            <link rel="stylesheet" href="mainUI.css"/>


    </head>
    <body>

        <div data-role="page" id='mypage'>
            <div data-role="header" data-position="fixed">
                <h1>Page Title</h1>
                <a data-role="button" data-rel="back">back</a>
            </div><!-- /header -->

            <div data-role="content">
                content
            </div><!-- /content -->
            <div class="my-footer" style="background-color: #00FF00;" data-role="footer" data-position="fixed">
                <div class="my-tabbar">
                    MYTEST div
                </div>
            </div>
        </div><!-- /page -->
    </body>
</html>

这是我的自定义CSS文件:

.my-footer {
    background-color:   #ff0000;    
}
.my-footer .my-tabbar{
    background-color:   #ff0000;
}
.my-tabbar{
    background-color: #ff00ff;
}

当我在Chrome浏览器上运行此html时,我工作了。但是当我在iPhone5设备上运行时却没有。 请帮忙。

3 个答案:

答案 0 :(得分:2)

您需要使用实际的jQuery页脚移动选择器。您可以在iPhone上使用Safari Web检查器查找任何内容的确切选择器,并在您自己的样式表中进行相应更改。

以下是我认为可以胜任的一些选择器:

.ui-bar-a.ui-footer {

/*Change background here */

}

P.S在您的样式表中,如果您想覆盖jQuery mobile,请使您的选择器更具体。 所以而不是......

.ui-bar-a.ui-footer {

/*Change background here */

}

使用....

.my-footer.ui-bar-a.ui-footer {

/*Change background here */

}

或....

.home-page .ui-bar-a.ui-footer {

/*Change background here */

}

答案 1 :(得分:2)

感谢我的同事,我终于找到了根本原因。当我用PC浏览器测试这个html文件时,我双击它。因此它作为普通的html文件运行,它将在<header>标记内加载所有声明的资源。但是,当我在iPhone上测试时,我使用$.mobile.changePage()从另一个页面导航到此html文件,这将仅加载<body>标记的内容。在这种情况下,我的css文件未加载。这就是我的网页无法在iPhone上运行的原因。

因此,要解决此问题,我只需要将所有资源声明(在<head>内)移到<body>标记的底部。通过这种方式,将始终加载资源文件。

希望这有帮助。

答案 2 :(得分:-1)

为什么还要手动编辑CSS并弄乱框架。 JQuery Mobile提供了一个优雅的解决方案来更改JQM元素的颜色主题,如页眉,页脚,按钮等。

您听说过Theme Roller吗?主题滚轮将允许您将yoru选择的颜色导入UI元素。添加颜色并将css文件导入项目,并将data-theme元素更改为您在主题滚轴中使用的样本。

我个人在Swatch“g”之后推荐你的自定义主题,并在jQuery mobile css文件之前导入你的css文件。