简体   繁体   English

<button>在HTML中单击时更改颜色?</button>

[英]<button> change color when clicked in HTML?

How do I make a button change to another color when clicked and when clicked again it goes back to its original color? 如何在单击按钮时将按钮更改为另一种颜色,然后再次单击该按钮可恢复其原始颜色? Can I do by using CSS or do I have to use Javascript? 我可以使用CSS还是必须使用Javascript?

Thanks in advance 提前致谢

This is the HTML code of my buttons. 这是我按钮的HTML代码。

<div class="H1toH5">
  <button class="seatButton">H1</button>
  <button class="seatButton">H2</button>
  <button class="seatButton">H3</button>
  <button class="seatButton">H4</button>
  <button class="seatButton">H5</button>
</div>

Pure CSS 纯CSS

  1. Change your button to another element (like span ) button更改为另一个元素(例如span
  2. Use a label and checkbox to control the toggle status 使用labelcheckbox控制切换状态
  3. Use :checked CSS selector and + sibling selector 使用:checked CSS选择器和+同级选择器

 .H1toH5 input { display: none; } .H1toH5 .seatButton { padding: 5px; border: 1px solid #ccc; background: yellow; } .H1toH5 input:checked + .seatButton { background: red; } 
 <div class="H1toH5"> <label> <input type="checkbox" /> <span class="seatButton">H1</span> </label> <label> <input type="checkbox" /> <span class="seatButton">H1</span> </label> <label> <input type="checkbox" /> <span class="seatButton">H1</span> </label> <label> <input type="checkbox" /> <span class="seatButton">H1</span> </label> <label> <input type="checkbox" /> <span class="seatButton">H1</span> </label> </div> 

How do I make a button change to another color when clicked and when clicked again it goes back to its original color? 如何在单击按钮时将按钮更改为另一种颜色,然后再次单击该按钮可恢复其原始颜色? Can I do by using CSS 我可以使用CSS来做吗

Try utilizing css :focus pseudo class , background-color 尝试利用css :focus伪类, background-color

 button { background-color:yellow; } button:focus { background-color:orange; } 
 <div class="H1toH5"> <button class="seatButton">H1</button> <button class="seatButton">H2</button> <button class="seatButton">H3</button> <button class="seatButton">H4</button> <button class="seatButton">H5</button> </div> 


no just the one that is clicked, but i want to be able to click on many buttons not just one 不只是被单击的那个,而且我希望能够单击许多按钮,而不仅仅是一个

 var elems = document.getElementsByClassName("seatButton"); for (var i = 0; i < elems.length; i++) { elems[i].onclick = function() { var color = window.getComputedStyle(this, null) .getPropertyValue("background-color"); this.style.backgroundColor = color === "rgb(255, 255, 0)" ? "rgb(255, 165, 0)" : "rgb(255, 255, 0)"; }; }; 
 button { background-color:yellow; } 
 <div class="H1toH5"> <button class="seatButton">H1</button> <button class="seatButton">H2</button> <button class="seatButton">H3</button> <button class="seatButton">H4</button> <button class="seatButton">H5</button> </div> 

You can do this with css a ::before pseudo element and the html checkbox input tag 您可以使用css ::: ::before伪元素和html checkbox输入标记来执行此操作

 input.toggle-btn { visibility: hidden; } input.toggle-btn::before { content: attr(value); display: inline-block; padding: 5px; background: #fff; font-size: 14pt; color: #aaa; border-radius: 5px; border: 1px solid #aaa; visibility: visible; } input.toggle-btn:checked::before { background: rgb(50,150,250); color: #eee; border-color: #eee; } 
 <input class="toggle-btn" type="checkbox" value="Hello"> 

No. You need to add/remove a class with javascript. 否。您需要使用javascript添加/删除类。 To make @tpie feel better about himself, here is the code for that. 为了使@tpie感觉更好,以下是该代码。 Using jQuery: 使用jQuery:

$('.seatButton').on('click', function(){
    $(this).toggleClass('is-active');
});

This code will toggle a specific class when you click on it. 当您单击该代码时,它将切换特定的类。 If you click on the button again it will then return to it's original state. 如果再次单击该按钮,它将返回到其原始状态。

    $('.seatButton').click(function () { 
       $(this).toggleClass('activeClass');
    }); 

Or just use the CSS Pseudo selected as people have specified above. 或只使用上面指定的人选择的CSS伪。 There are many ways to achieve what you want! 有很多方法可以实现您想要的!

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM