按钮更改背景

时间:2017-04-25 14:44:25

标签: html css

我们说我有以下HTML代码:

<html>
  <body>
    <button id="one">Button 1</button>
    <button id="two">Button 2</button>
    <button id="reset">Reset</button>
  </body>
</html>

如何使按钮将背景颜色从白色更改为绿色或从白色更改为红色,单击重置时是否将背景颜色更改为白色?

3 个答案:

答案 0 :(得分:1)

不知道你想要什么重置按钮,但这里有一个jQuery脚本可以完成这项工作:

&#13;
&#13;
$("#one").click(function() {
  $("body").css("background-color", "green");
});

$("#two").click(function() {
  $("body").css("background-color", "red");
});

$("#reset").click(function() {
  $("body").css("background-color", "white");
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button id="one">Button 1</button>
<button id="two">Button 2</button>
<button id="reset">Reset</button>
&#13;
&#13;
&#13;

你无法用纯CSS做你想做的事情

这是一个工作小提琴:

https://jsfiddle.net/u66yann6/16/

答案 1 :(得分:1)

只有CSS方式,但我不建议使用它。你需要有一个占用整个身体并包含所有内容的div,并有单选按钮来存储当前状态。

&#13;
&#13;
body {
  margin: 0;
  height: 100vh;
  width: 100vw;
}

[name=color] {
  display: none;
}

#green[name=color]:checked~.background {
  background: green;
}

#red[name=color]:checked~.background {
  background: red;
}

#white[name=color]:checked~.background {
  background: white;
}

.background {
  height: 100%;
  width: 100%
}

.button {
  background-color: buttonface;
  padding: 2px 6px 3px;
  border-width: 2px;
  border-style: outset;
  border-color: buttonface;
}

.button:active {
  border-style: inset
}
&#13;
<input type="radio" name="color" id="green">
<input type="radio" name="color" id="red">
<input type="radio" name="color" id="white">

<div class="background">
  <label class="button" for="green">Green</label>
  <label class="button" for="red">Red</label>
  <label class="button" for="white">White</label>
</div>
&#13;
&#13;
&#13;

这只是一个基本的实现,使其可行,你必须加入一些咏叹调的东西,以使其符合A11y。

答案 2 :(得分:0)

<button data-color="blue">Button 1</button>
<button data-color="red">Button 2</button>
<button data-color="white">Reset</button>

...


$('[data-color]').click(function(){
    var color = $(this).data('color');
    $('body').css('background-color',color);
});

最终

jsfiddle.net/u66yann6/17