边缘对 LI 的悬停效果

Hover effect on LI from edge

我有以下HTML嵌套的ul li结构,我想在每个li上实现悬停效果,(类似于当前li上的悬停效果,大写字母A),它的子li也应该悬停在最顶层父 LI 的开始(下面的示例类似于 Capital A li 悬停效果)

ul { list-style: none; padding: 0; margin:0 }
li { margin:0; padding: 0; cursor:pointer}

.container > ul .items  {padding-left:1.5rem}

.items:hover {
  background:red
}
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width">
</head>
<body>
<div class="container">
<ul class="parent" id="Head">
    <li class="items"><a><span>A</span></a></li>
    <li class="items"> 
        <div class="group"><a><span>B</span></a> </div>
        <ul class="group-item">
           <li class="items"><a><span>b</span></a></li>
           <li class="items"><a><span>b</span></a></li>
        </ul>
    </li>
    <li class="items">
        <div class="group"><a><span>C</span></a></div>
        <ul class="group-item">
          <li class="items"><a><span>c</span></a></li>
          <li class="items"><a><span>c</span></a></li>
          <li class="items">
             <div class="group"> <a><span>c</span></a> </div>
             <ul class="group-item">
                <li class="items"><a><span>c1</span></a></li>
                <li class="items"><a><span>c1</span></a></li>
                <li class="items">
                   <div class="group"> <a><span>c1</span></a> </div>
                    <ul class="group-item">
                      <li class="items"><a><span>c2</span></a></li>
                      <li class="items"><a><span>c2</span></a></li>
                      <li class="items"><a><span>c2</span></a></li>
                    </ul>
                  </li>
               </ul>
             </li>
           </ul>
        </li>
  </div>

</body>
</html>

如果您只想突出显示内容,那么您应该只针对 :hover

的内容

这里我定位了 <li> 内的 <a> 标签。如果您的列表元素中可以有除 <a>-tags 之外的其他元素,那么您也需要将它们作为目标。或者更新 HTML 以始终用 div 和特定 class 包装内容。

我对您的代码所做的更改是:

li a {display: block}
li a:hover {background-color: red}

请记住,最好在此处使用 classes,而不是针对您网站列表中的每个 link。

ul { list-style: none; padding: 0; margin:0 }
li { margin:0; padding: 0; cursor:pointer}
li a {display: block;}

.container ul a  {padding-left:1.5rem}
.container ul ul a  {padding-left:3rem}
.container ul ul ul a  {padding-left:4.5rem}
.container ul ul ul ul a  {padding-left:6rem}

li a:hover {
  background:red;
}
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width">
</head>
<body>
<div class="container">
<ul class="parent" id="Head">
    <li class="items"><a><span>A</span></a></li>
    <li class="items"> 
        <div class="group"><a><span>B</span></a> </div>
        <ul class="group-item">
           <li class="items"><a><span>b</span></a></li>
           <li class="items"><a><span>b</span></a></li>
        </ul>
    </li>
    <li class="items">
        <div class="group"><a><span>C</span></a></div>
        <ul class="group-item">
          <li class="items"><a><span>c</span></a></li>
          <li class="items"><a><span>c</span></a></li>
          <li class="items">
             <div class="group"> <a><span>c</span></a> </div>
             <ul class="group-item">
                <li class="items"><a><span>c1</span></a></li>
                <li class="items"><a><span>c1</span></a></li>
                <li class="items">
                   <div class="group"> <a><span>c1</span></a> </div>
                    <ul class="group-item">
                      <li class="items"><a><span>c2</span></a></li>
                      <li class="items"><a><span>c2</span></a></li>
                      <li class="items"><a><span>c2</span></a></li>
                    </ul>
                  </li>
               </ul>
             </li>
           </ul>
        </li>
  </div>

</body>
</html>