2017-04-25 88 views
0

比方说,我有以下的HTML代码:制作按钮切换背景

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

我怎样才能使按钮从白色变成背景色为绿色或白色到红色,并点击复位时使其改变背景颜色回到白色?

+1

使用JS。你的问题标签只有HTML和CSS。这是只能通过CSS来完成吗? – andreim

回答

1

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

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 
 
}
<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>

这仅仅是一个基本的实现,使之可行,你不得不把一些唱段的东西,使之符合A11Y。

+0

谢谢你的帮助和遗憾,我一直没有去。 –

1

不知道你想要的复位按钮,但这里一个jQuery脚本,将做的工作:

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

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

 
$("#reset").click(function() { 
 
    $("body").css("background-color", "white"); 
 
});
<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>

你不能做你想做的纯CSS

这里是一个工作小提琴:

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

+2

OP没有特别要求jquery。可能是最好不要使用它 –

+0

@PriyeshKumar问题编辑 –

+0

[像这样?](https://jsfiddle.net/bpsjns1a/) – Sank6

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); 
}); 

ultimate。

jsfiddle.net/u66yann6/17

+0

它现在工作。谢谢! –

+0

尝试新的脚本,并享受!不要忘了接受它:))= – pirs

+0

你的脚本不起作用@Pirs和Baptiste Arnaud已经给了我一个工作代码 –