【问题标题】:Why the other checked radio input and label is not working?为什么其他检查的无线电输入和标签不起作用?
【发布时间】:2020-08-21 05:51:03
【问题描述】:

This 让我的问题更加清晰。

  1. 我有完全相同的两个 html - A 和 B。 他们共享相同的 css,为什么 A 工作而 B 不工作?

  2. 我怎样才能扭转心脏检查?使选中的心从左到右。

我尝试过 flexbox,但很难为输入和标签制作容器。输入和标签似乎密不可分,布局怎么办?

我还尝试使用属性 input:nth-of-type(5) 来更改订单。

html:

<div class="game">
  <h1>A</h1>
    <div class="b">
      <div class="streaming-info">
        <input type="radio" id="h1" name="heart" value="heart">
        <input type="radio" id="h2" name="heart" value="heart">
        <input type="radio" id="h3" name="heart" value="heart">
        <input type="radio" id="h4" name="heart" value="heart">
        <input type="radio" id="h5" name="heart" value="heart">
        
        <label for="h1" class="viewers"><i class="fas fa-heart"></i></label>
        <label for="h2" class="viewers"><i class="fas fa-heart"></i></label>
        <label for="h3" class="viewers"><i class="fas fa-heart"></i></label>
        <label for="h4" class="viewers"><i class="fas fa-heart"></i></label>
        <label for="h5" class="viewers"><i class="fas fa-heart"></i></label>
      </div>
      <div class="btnDiv">
        <button class="btn"><a href="#">Reviews</a></button>
        <button class="btn"><a href="#">Buy</a></button>
      </div>

    </div> 
  </div>

<div class="game">
  <h1>B</h1>
    <div class="b">
      <div class="streaming-info">
        <input type="radio" id="h1" name="heart" value="heart">
        <input type="radio" id="h2" name="heart" value="heart">
        <input type="radio" id="h3" name="heart" value="heart">
        <input type="radio" id="h4" name="heart" value="heart">
        <input type="radio" id="h5" name="heart" value="heart">
        
        <label for="h1" class="viewers"><i class="fas fa-heart"></i></label>
        <label for="h2" class="viewers"><i class="fas fa-heart"></i></label>
        <label for="h3" class="viewers"><i class="fas fa-heart"></i></label>
        <label for="h4" class="viewers"><i class="fas fa-heart"></i></label>
        <label for="h5" class="viewers"><i class="fas fa-heart"></i></label>
      </div>
      <div class="btnDiv">
        <button class="btn"><a href="#">Reviews</a></button>
        <button class="btn"><a href="#">Buy</a></button>
      </div>

    </div> 
  </div>

SCSS:

.stats{
  display: flex;
}
.streaming-info >input{
  // order: 1; 
  position: absolute;
  top:0;
  right:0;
  opacity: 0;
  z-index: -999;
}
label:nth-of-type(5){
  order: 2;
}
label:nth-of-type(4){
  order:3;
}
label:nth-of-type(3){
  order:4;
}
label:nth-of-type(2){
  order:5;
}
label:nth-of-type(1){
  order:6;
}

input:nth-of-type(1):hover  ~label:nth-of-type(1),
input:nth-of-type(2):hover  ~label:nth-of-type(2),
input:nth-of-type(3):hover  ~label:nth-of-type(3),
input:nth-of-type(4):hover  ~label:nth-of-type(4),
input:nth-of-type(5):hover  ~label:nth-of-type(5){
  color: red;
}
input:nth-of-type(5):checked  ~label:nth-of-type(n+5),
input:nth-of-type(4):checked  ~label:nth-of-type(n+4),
input:nth-of-type(3):checked  ~label:nth-of-type(n+3),
input:nth-of-type(2):checked  ~label:nth-of-type(n+2),
input:nth-of-type(1):checked  ~label:nth-of-type(n+1){
  color: red;
}

【问题讨论】:

    标签: html css input label checked


    【解决方案1】:

    您必须将所有输入包装在 form 标记中。然后相应地更新您的 CSS。

    试试这个,

    <!DOCTYPE html>
    <html lang="en">
    
    <head>
    
    </head>
    
    <body>
      <div class="game">
        <h1>A</h1>
        <div class="b">
          <div class="streaming-info">
            <form>
              <input type="radio" id="h1" name="heart" value="heart">
              <input type="radio" id="h3" name="heart" value="heart">
              <input type="radio" id="h4" name="heart" value="heart">
              <input type="radio" id="h5" name="heart" value="heart">
              <input type="radio" id="h6" name="heart" value="heart">
    
              <label for="h1" class="viewers"><i class="fas fa-heart"></i></label>
              <label for="h2" class="viewers"><i class="fas fa-heart"></i></label>
              <label for="h3" class="viewers"><i class="fas fa-heart"></i></label>
              <label for="h4" class="viewers"><i class="fas fa-heart"></i></label>
              <label for="h5" class="viewers"><i class="fas fa-heart"></i></label>
            </form>
          </div>
          <div class="btnDiv">
            <button class="btn"><a href="#">Reviews</a></button>
            <button class="btn"><a href="#">Buy</a></button>
          </div>
    
        </div>
      </div>
    
      <div class="game">
        <h1>B</h1>
        <div class="b">
          <div class="streaming-info">
            <form>
              <input type="radio" id="h2" name="heart" value="heart">
              <input type="radio" id="h2" name="heart" value="heart">
              <input type="radio" id="h2" name="heart" value="heart">
              <input type="radio" id="h2" name="heart" value="heart">
              <input type="radio" id="h2" name="heart" value="heart">
    
              <label for="h1" class="viewers"><i class="fas fa-heart"></i></label>
              <label for="h2" class="viewers"><i class="fas fa-heart"></i></label>
              <label for="h3" class="viewers"><i class="fas fa-heart"></i></label>
              <label for="h4" class="viewers"><i class="fas fa-heart"></i></label>
              <label for="h5" class="viewers"><i class="fas fa-heart"></i></label>
            </form>
          </div>
          <div class="btnDiv">
            <button class="btn"><a href="#">Reviews</a></button>
            <button class="btn"><a href="#">Buy</a></button>
          </div>
    
        </div>
      </div>
    </body>
    
    </html>

    希望对你有所帮助:)

    【讨论】:

      【解决方案2】:

      你试过为两个html添加相同的类名吗?

      【讨论】:

      • 请添加详细信息,并尽您最大的能力明确回答。
      • A 和 B html 是两个相同的。
      猜你喜欢
      • 2017-12-03
      • 2018-01-04
      • 1970-01-01
      • 2010-10-12
      • 2015-12-30
      • 2021-09-23
      • 2013-08-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多