单击按钮时,焦点会转到该按钮。所以按钮的 :focus 伪类中的样式被应用。但是,一旦用户单击另一个按钮或通过按 Tab 键更改焦点,您的按钮就会失去“焦点”状态。
一个可用的选项是使用 :visited 伪类。您需要将按钮包裹在锚标记(<a></a>)周围。假设您为锚标记提供了一个 .link 类。
<a href="https://example.com/page-b" class="link">
<input type="button" value="next page" />
</a>
那么css应该是,
.link:visited > button {
color: blue;
}
请注意,我的目标是作为锚元素下的按钮的子元素。我这样做是因为按钮没有可以直接使用的 :visited 伪类。但是,根据MDN,
出于隐私原因,使用此选择器可以修改的样式非常有限。
所以我认为您不能使用这种方法使背景变红(我尝试过但没有奏效)。此外,即使用户重新访问了您的网站或重新加载了页面,您的按钮也会保持不变,一旦用户访问链接,“:visited”的样式就会变成 anchor 元素的工作方式。
我的建议是你应该在这里使用 javascript。我对wordpress不太了解,也不知道你是否可以在wordpress中使用js。但通常你甚至可以在 wordpress 中使用<script> 标签。
我的方法...
function nextpage() {
window.open("https://www.example.com/page-b", "_blank");
document.getElementById("next").style.backgroundColor = "red";
}
<input type="button" value="next" onclick="nextpage()" id="next" />
即使我放了一个 sn-p,它也不会在 stackoverflow 中工作,可能是由于安全策略,但这应该在现实生活中工作。我在新选项卡中打开“example.com/page-b”,因为我在同一个选项卡中打开它
“example.com”选项卡将被关闭,当用户重新打开选项卡时,按钮的样式将丢失。
如果你想保持按钮的红色背景,那么使用js,当用户点击按钮时设置一个cookie,如果用户重新加载页面时cookie存在,则设置按钮的样式为已访问。