我有一个图片元素,希望在点击时进行更改。
<img id="btnLeft">
这个有效:
#btnLeft:hover {
width: 70px;
height: 74px;
}
但是我需要的是:
#btnLeft:onclick {
width: 70px;
height: 74px;
}
但是,显然它不起作用。在CSS中是否有可能实现onclick
的行为(即不使用JavaScript)?
我遇到了一个问题,需要在鼠标滑过时将元素涂成红色,并在点击时将其变成蓝色,同时仍然保持悬停状态。为了使用CSS实现这个需求,你需要像下面这样做:
h1:hover { color: red; }
h1:active { color: blue; }
<h1>This is a heading.</h1>
我曾经遇到过一些问题,直到我发现CSS选择器的顺序是我遇到的问题所在。问题在于我交换了位置,导致活动选择器无法正常工作。后来我发现:hover
应该放在前面,然后是:active
。
我有一段关于鼠标悬停和点击的代码,它能够正常工作:
//For Mouse Hover
.thumbnail:hover span{ /* CSS for enlarged image */
visibility: visible;
text-align: center;
vertical-align: middle;
height: 70%;
width: 80%;
top: auto;
left: 10%;
}
当你点击这段代码时,它会隐藏图片:
.thumbnail:active span {
visibility: hidden;
}
<details>
HTML元素创建了一个折叠小部件来隐藏和显示内容。我们将(滥用)<details>
元素和一些CSS,所以我们称之为“细节黑客”。
这��是一个基本示例。
details[open] summary {
color: red;
}
<details>
<summary>Toggle</summary>
</details>
<summary>
元素会切换<details>
的open
属性和<summary>
的样式。您还可以切换<details>
的下一个兄弟元素的样式。
details[open] summary {
color: red;
}
details[open] ~ p {
color: blue;
}
<details>
<summary>Toggle</summary>
</details>
<p>Hello, world!</p>
::marker
,可以将该值更改为inline-flex,例如。summary {
display: inline-flex;
}
summary {
list-style: none;
}
summary::marker {
content: none;
}
summary {
display: inline-flex;
}
details[open] img {
width: 75px;
height: 75px;
}
<details>
<summary><img src="https://istack.dev59.com/5FBwB.webp" alt="Heart"></summary>
</details>
根据你想做什么,让焦点保持变化可能是一个选项?
<button></button>
<style>
button {
width: 140px;
height: 70px;
background: url('http://www.ranklogos.com/wp-content/uploads/2015/06/Stack-Overflow-Logo.png');
background-size: cover;
}
button:focus {
width: 240px;
height: 120px;
}
</style>
请注意,这不适用于图像标签。但是根据您的元素ID,我假设您正在寻找按钮功能。您可以使用:target
。
或者通过类名过滤,使用.classname:target
。
或者通过id名称过滤,使用#idname:target
。
#id01:target {
position: absolute;
left: 0;
top: 0;
width: 100%;
height: 100%;
display: flex;
align-items: center;
justify-content: center;
}
.msg {
display: none;
}
.close {
color: white;
width: 2rem;
height: 2rem;
background-color: black;
text-align: center;
margin: 20px;
}
<a href="#id01">Open</a>
<div id="id01" class="msg">
<a href="" class="close">×</a>
<p>Some text. Some text. Some text.</p>
<p>Some text. Some text. Some text.</p>
</div>
:target
的答案了,所以不需要再提供另一个。此外,问题提出者询问如何实现“onclick”效果,而不是显示/隐藏其他元素。 - Asons
:active
表示当鼠标按下时起作用。根据您想要做什么,您可能可以使用 CSS4 伪类:target
来实现相同的效果。 - bfavaretto:target
并不是一个新的概念。它自选择器3起就已经存在了,并且在写作时已经成为推荐标准已经有一年之久。 - BoltClock