我试图在单击按钮后更改其背景颜色(并可能进行更改,以使您无法再次单击它),但是无法弄清楚如何更改颜色。我只想为此使用HTML和CSS。我该怎么做?
body {
background-color: white;
}
.button {
font-family: "Arial", sans-serif;
background-color: black;
border: 10px dashed white;
color: white;
font-size: 30px;
text-align: center;
line-height: 0;
cursor:pointer;
border-radius: 8px;
height:200px;
width:400px;
-webkit-transition-duration: 0.4s;
transition-duration: 0.4s;
}
.button:visited{
background-image:none;
background-color: red;
font-size: 35px;
border: 10px dashed black;
color: black;
}
.button:hover{
background-image:none;
background-color: white;
font-size: 35px;
border: 10px dashed black;
color: black;
}
<button class="button" type="button" onclick="onClick()">Button</button>
答案 0 :(得分:0)
您应将:visited
用于链接,而不要button
孤独。考虑使用由a
插入的button
标签,如下所示:
<a href="#" class="button" type="button" onclick="onClick()">Button</a>
如果您希望使其在第一次单击后不可点击,则还可以添加一个引用您的onclick
函数的JavaScript代码,如下所示:
function onClick () {
this.style.pointerEvents = "none";
}
答案 1 :(得分:0)
您不能仅使用HTML和CSS。您需要JavaScript。请注意,按钮onclick="onClick()"
中是JavaScript function。
使用JavaScript,您可以将按钮类名称更改为button visited
,这可以使.button
和.visited
的CSS选择器起作用。
请注意,a
标签上使用的是:visited
,而不是按钮。例如,请参见代码段:
var clicks = 0;
function onClick(event) {
event.className = "button visited";
if (clicks >= 2) {
alert("WRONG! YOU LOSE! TRY AGAIN!");
// window.location.href = 'index.html';
}
clicks += 1;
// document.getElementById("clicks").innerHTML = clicks;
};
body {
background-color: white;
}
.button {
font-family: "Arial", sans-serif;
background-color: black;
border: 10px dashed white;
color: white;
font-size: 30px;
text-align: center;
line-height: 0;
cursor:pointer;
border-radius: 8px;
height:200px;
width:400px;
-webkit-transition-duration: 0.4s;
transition-duration: 0.4s;
}
.visited{
background-image:none;
background-color: red;
font-size: 35px;
border: 10px dashed black;
color: black;
}
.button:hover{
background-image:none;
background-color: white;
font-size: 35px;
border: 10px dashed black;
color: black;
}
a:visited {
color: purple;
}
<!DOCTYPE html>
<html>
<link rel="stylesheet" type="text/css" href="style.css">
<body>
<button id="button1" class="button" type="button" onclick="onClick(this)">Button1</button>
<button id="button2" class="button" type="button" onclick="onClick(this)">Button2</button>
<button id="button3" class="button" type="button" onclick="onClick(this)">Button3</button>
<br/><a href="#">Test <a> visited</a>
</body>
</html>
如果onclick
事件中有多个元素,则可以使用:
<button id="button1" class="button" type="button" onclick="onClick(this)">Button1</button>
<button id="button2" class="button" type="button" onclick="onClick(this)">Button2</button>
<button id="button3" class="button" type="button" onclick="onClick(this)">Button3</button>
然后更改为
function onClick(event) {
event.className = "button visited";
// rest of code below
答案 2 :(得分:0)
您可以执行所需的操作,但不能使用按钮标签。 :visited
选择器用于选择访问的“链接”,因此仅在具有href字段的锚标记上起作用。
从w3schools:
由于以下原因,浏览器限制了可以为a:visited链接设置的样式。 安全问题。
允许的样式为:
颜色
背景颜色
边框颜色(和边框颜色用于 分开的两面)
轮廓色
列规则颜色
颜色 填充和描边部分
所有其他样式均继承自a:link。
body {
background-color: white;
}
.button {
font-family: "Arial", sans-serif;
background-color: black;
border: 10px dashed white;
color: white;
font-size: 30px;
text-align: center;
line-height: 0;
cursor:pointer;
border-radius: 8px;
height:200px;
width:400px;
-webkit-transition-duration: 0.4s;
transition-duration: 0.4s;
}
.button:visited{
background-image:none;
background-color: red;
font-size: 35px;
border: 10px dashed black;
color: purple;
}
.button:hover{
background-image:none;
background-color: white;
font-size: 35px;
border: 10px dashed black;
color: blue;
}
<a class="button" href="google.com" target="_blank">Button</a>
如果您的项目明确希望避免使用href,则必须使用javascript。如果您还希望样式在页面重新加载后保持不变,则必须使用会话从后端进行操作。