代码之家  ›  专栏  ›  技术社区  ›  Allan Jebaraj

复选框和同级选择器

  •  1
  • Allan Jebaraj  · 技术社区  · 8 年前

    我使用标签作为复选框的掩码,当选中相应的复选框时,我需要更改标签的背景。我到目前为止所做的是:

    .viewbutton {
      height: 48px;
      width: 48px;
      background-color: #FFFFFF;
      border-radius: 50%;
      margin: 0px 4px;
      border: 0px;
      border: 1px solid #CDCDCD;
      cursor: pointer;
      background-repeat: no-repeat;
      background-position: center;
      background-size: 24px;
      position: relative;
      display: inline-block;
    }
    
    #comparechk:checked+#comparebtn,
    #editchk:checked+#editbtn,
    #multiplechk:checked+#multiplebtn {
      background-color: #005EFF;
      outline: none;
    }
    <input type="checkbox" id="comparechk" class="chkhidden">
    <input type="checkbox" id="editchk" class="chkhidden">
    <input type="checkbox" id="multiplechk" class="chkhidden">
    
    <label for="comparechk" id="comparebtn" class="viewbutton"></label>
    <label for="editchk" id="editbtn" class="viewbutton"></label>
    <label for="multiplechk" id="multiplebtn" class="viewbutton"></label>
    1 回复  |  直到 8 年前
        1
  •  4
  •   C3roe    8 年前

    + 相邻的 兄弟组合,所以 A + B 意味着 B 元素 直接地 跟随 A ,中间没有其他元素。

    你想要 一般的 兄弟组合者, ~

        #comparechk:checked ~ #comparebtn,
        #editchk:checked ~ #editbtn,
        #multiplechk:checked ~ #multiplebtn {
            background-color: #005EFF;
            outline: none;
        }
    

    http://jsfiddle.net/8u031bom/3/