【发布时间】:2019-04-05 00:34:10
【问题描述】:
我想将页内链接的 a 元素放在标签元素中,以便复选框会随着页面中的每次移动而切换。
所以我首先写了这段代码:
div {
width: 100px;
height: 50px;
background: #121;
}
<input type="checkbox" id="correct">
<label for="correct">text</label>
<div></div>
<label for="correct">teeeext</label>
这是通过单击每个标签并切换复选框来完成的。
但是,当我在标签元素内创建带有链接的代码时,复选框停止工作。
div {
width: 100px;
height: 50px;
background: #121;
}
<input type="checkbox" id="correct">
<label for="correct"><a href="#link1">not work!</a></label>
<div></div>
<label for="correct">work!</label>
<label for="correct"><a href="#link2">not work!</a></label>
作为搜索的结果,我发现了一个类似的问题,但没有写出关于使用页内链接的解决方案。
javascript - <a> tag inside <label> tag not triggering checkbox - Stack Overflow
在标签元素中使用页内链接时,我需要什么 CSS 来切换复选框?
【问题讨论】:
-
链接应该去某个地方...不执行操作。你为什么首先使用链接?
-
另一个问题是禁止在
label中有a,所以你所做的就是不正确的。这就是为什么没有答案。 -
@Paulie_D 您希望通过复选框更改显示的元素。我想在单击页面中的链接时更改显示。此外,页内链接链接到页面中的部分。
-
你不能两者兼得。要么链接实际上去某个地方,要么它执行一个动作。就目前而言,您的 HTML 无效,我建议您重新考虑您的方法。
-
@scuregen 不管你用什么措辞。您不能在另一个交互元素中包含一个交互元素,以便一键执行两个操作。您的
label是交互式的,因为它具有for属性。a是交互式的,因为它具有href属性。删除这些属性中的任何一个,它就会成为有效的 HTML(尽管它在单击时也只执行一个操作)。