【问题标题】:Why isn't my CSS being applied when the class is added to the element?为什么当类被添加到元素时我的 CSS 没有被应用?
【发布时间】:2021-11-10 16:36:20
【问题描述】:

我想要做的是,当我按下一个按钮时,请在它周围放置一个边框,以将其显示为活动状态。我也试图在 JavaScript 中使按钮处于活动状态,但我还没有做到这一点。谁能帮帮我?

$('button').on('click', function() {
  $('button').removeClass('active_button');
  $(this).addClass('active_button');
});

//Home button active on page load
$(document).ready(function() {
  $('#Home').addClass('active_button');
});
.cable-choose {
  margin-bottom: 20px;
}

.cable-choose button {
  border: 2px solid #E1E8EE;
  border-radius: 6px;
  padding: 13px 20px;
  font-size: 14px;
  color: #5E6977;
  background-color: #fff;
  cursor: pointer;
  transition: all .5s;
}

.cable-choose button:hover,
.cable-choose button:active,
.cable-choose button:focus {
  border: 2px solid #000;
  outline: none;
}

.active_button {
  border: 2px solid black;
}
<script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>

<div class="cable-config">
  <span>Select Entries</span>

  <div class="cable-choose">
    <button id="Home">50 Entries<br>$5.00</button>
    <button>100 Entries<br>$10.00</button>
    <button>250 Entries<br>$25.00</button>
    <button>500 Entries<br>$50.00</button>
  </div>
</div>

【问题讨论】:

    标签: javascript html css button


    【解决方案1】:

    你只需要让你的 CSS 选择器更 specific。它被标准按钮样式覆盖。

    $('button').on('click', function() {
      $('button').removeClass('active_button');
      $(this).addClass('active_button');
    });
    
    //Home button active on page load
    $(document).ready(function() {
      $('#Home').addClass('active_button');
    });
    .cable-choose {
      margin-bottom: 20px;
    }
    
    .cable-choose button {
      border: 2px solid #E1E8EE;
      border-radius: 6px;
      padding: 13px 20px;
      font-size: 14px;
      color: #5E6977;
      background-color: #fff;
      cursor: pointer;
      transition: all .5s;
    }
    
    .cable-choose button:hover,
    .cable-choose button:active,
    .cable-choose button:focus {
      border: 2px solid #000;
      outline: none;
    }
    
    .cable-choose button.active_button { /* <------------ RIGHT HERE */
      border: 2px solid black;
    }
    <script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
    
    <div class="cable-config">
      <span>Select Entries</span>
    
      <div class="cable-choose">
        <button id="Home">50 Entries<br>$5.00</button>
        <button>100 Entries<br>$10.00</button>
        <button>250 Entries<br>$25.00</button>
        <button>500 Entries<br>$50.00</button>
      </div>
    </div>

    【讨论】:

      【解决方案2】:

      我认为它正在工作 - 当我检查我单击的那个时,我看到 class="active_button" ...您的 active_button 样式与您的悬停/焦点/活动状态相同(一个设置为 #000,另一个设置为“黑色” - 相同的颜色)

      【讨论】:

      • 好吧,它不能工作,因为当你点击按钮时,黑色边框不会粘在按钮上。在上面的代码sn-p中试一下
      • 这不是答案。如果有的话应该是评论。
      • 哎呀,我看错了。你说得对。啊,我不能对自己投反对票?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-03-15
      • 2013-05-06
      • 1970-01-01
      • 2013-11-03
      • 2020-12-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多