更改复选框标签css属性并选中复选框

 mobiledu2502927213 发布于 2023-02-04 16:23

我有以下html:

  

使用CSS我为标签添加了背景色.

label { background-color:#333; color:#FFF; }

现在,我想在选中复选框时更改标签的背景颜色.我知道如何使用javascript,但有没有办法只使用CSS?

我已经看到了一些解决方案,但他们使用相邻的兄弟选择器,只有当复选框后面出现标签时才能使用.

我仍然希望在没有javascript的情况下解决这个问题,有没有人有线索?

更新:

因为我害怕,它不能这样做,所以我必须用JS做,或用不同的HTML结构实现相同的视觉效果.我想一次性设置标签和文本框的背景颜色,所以我可以使用一个解决方案,其中复选框绝对放在标签的顶部.好点PlantTheldea!

或者我可以将背景颜色应用于标签和复选框.

感谢大家!

2 个回答
  • 在选中标签时,您无法仅通过CSS直接设置标签样式,但您可以设置复选框的同级样式.

    http://jsfiddle.net/QdDpL/

    HTML

    <label>
        <input class="check" type="checkbox" />
        <span class="label-text">Checkbox</label>
    </label>
    

    CSS

    label {
        background: yellow;
    }
    label .label-text {
        background: cyan;
    }
    label input.check:checked + .label-text {
        background: lime;
    }
    

    您也可以使用浮动和填充来使复选框显示为好像它位于.label文本范围内.

    有关兄弟选择器的浏览器支持,请参阅以下链接:http: //caniuse.com/css-sel2

    或者如另一个答案所说的那样,如果它是复选框的兄弟,你可以设置标签的样式 - 但就像我的答案仍然不包含标签中的复选框一样.

    2023-02-04 16:25 回答
  • 你可以用这样的纯css实现这个,

    <input type="checkbox" id="cb_1" value="cb_val" name="cb_name">
    <label for="cb_1">
         my checkbox text
    </label>
    

    有了这个CSS,

    label { background-color:#333; color:#FFF; }
    
    input[type="checkbox"]:checked + label {
        background: brown;
    }
    

    的jsfiddle

    记住

    标签必须在复选框之后,因此您需要对其进行更多样式以保持您的外观.

    这里有一个风格选项,可以让你拥有与你想要的相同的外观,新小提琴.这不涉及任何绝对的定位,只是一些诡计.

    2023-02-04 16:25 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有