我对 html 中的列表有疑问。
我想要一个基本功能:当用户将鼠标悬停在列表的一个元素上时,它的边框顶部颜色和他的兄弟变为红色;
因此,如果我有这样的 HTML:
<dl>
<dt>Example 1</dt>
<dd>Description 1</dd>
<dt>Example 2</dt>
<dd>Description 2</dd>
<dt>Example 3</dt>
<dd>Description 3</dd>
</dl>
和 CSS:
dd {
display: none;
}
dt {
border-top: 1px solid black;
}
dt:last-of-type {
border-bottom: 1px solid black;
}
dt:hover {
border-top: 1px solid red;
}
dt:hover:last-of-type {
border-bottom: 1px solid red;
}
dt:hover + dd + dt {
border-top: 1px solid red;
}
我没有得到预期的结果。如果我将鼠标悬停在第一个元素上,则只有上边框变为红色。如果我将鼠标悬停在第三个元素上,然后悬停在第二个元素上,然后悬停在第一个元素上,第二个元素和第一个元素的边框将变为红色,但在最后一个状态下应该只变为第一个元素。为什么会这样?