如何切换“controlgroup”背景颜色

时间:2014-03-20 13:00:12

标签: jquery css css3 jquery-mobile

我想更改“controlgroup”中每个按钮的背景颜色。如果没有按下按钮,我知道如何更改背景颜色:(这第一块css有效!)

.ui-page-theme-a .ui-btn.ui-btn{
    background-color: #123456;
}

但如果按钮处于活动状态,则以下代码无法更改颜色:

.ui-page-theme-a .ui-btn.ui-btn-active{
    background-color: #123456;
}

这是我完整的HTML代码:

<html>

<head>
    <meta name=viewport content="user-scalable=no,width=device-width" />
    <link href="css/colorpicker.css" rel="stylesheet" type="text/css" />
    <link rel="stylesheet" href="http://code.jquery.com/mobile/1.4.2/jquery.mobile-1.4.2.min.css" />
    <script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
    <script src="http://code.jquery.com/mobile/1.4.2/jquery.mobile-1.4.2.min.js"></script>
    <script src="js/colorpicker.js"></script>
    <script>
        onStart();
    </script>
</head>

<body>
    <div class="container">
        <div id="preview" class="preview"></div>
        <p id="output"></p>

        <fieldset data-role="controlgroup" data-type="horizontal">
            <legend>Horizontal controlgroup, checkbox:</legend>
            <input type="checkbox" id="modul1">
            <label for="modul1">Modul 1</label>
            <input type="checkbox" id="modul2">
            <label for="modul2">Modul 2</label>
            <input type="checkbox" id="modul3">
            <label for="modul3">Modul 3</label>
            <input type="checkbox" id="modul4">
            <label for="modul4">Modul 4</label>
            <input type="checkbox" id="modul5">
            <label for="modul5">Modul 5</label>
            <input type="checkbox" id="modul6">
            <label for="modul6">Modul 6</label>
            <input type="checkbox" id="modul7">
            <label for="modul7">Modul 7</label>
            <input type="checkbox" id="modul8">
            <label for="modul8">Modul 8</label>
        </fieldset>

        <div class="colorpicker" style="display:none">
            <canvas id="picker" var="2" width="300" height="300"></canvas>
        </div>
    </div>
</body>

</html>

以下是您的实时代码:http://jsfiddle.net/DCtEF/

2 个答案:

答案 0 :(得分:2)

迅雷,你的修复非常简单,有两种方法可以解决这个问题,其中一种(第二种选择)可能更合适。

这里真正的问题是关联优先权。此样式表:"http://code.jquery.com/mobile/1.4.2/jquery.mobile-1.4.2.min.css"是覆盖您的样式的内容。可能你有自己的样式表在头部连接,然后在它下面。


快速简便的方法是在css属性的末尾添加!importanthttp://jsfiddle.net/SaDrZ/

background-color: orange !important;

这可能是一种令人讨厌的问题,通常最好的做法是尽可能避免使用!important。


更理想的方法是简单地确保您链接上面的样式表 BEFORE 您自己的样式表。如下......

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

答案 1 :(得分:0)

我还没有检查过您的代码但是我先检查一下:.ui-page-theme-a .ui-btn.ui-btn-active -active不是活动行为的css选择器。考虑.ui-page-theme-a .ui-btn.ui-btn:active