html - 全宽 :hover background for nested lists?

标签 html css

下面截取的 html 呈现了一个嵌套的元素列表。悬停(鼠标悬停)时,元素背景颜色会发生变化。但是左边的空格没有着色(由于缩进)。

我怎样才能让那个空间也被着色?

我尝试将 absolute 定位元素添加到 li 元素中,并使用 left:0。但是那些部分隐藏了 li 元素的内容:/

ul { 
  list-style: none; 
  padding: 0; 
  margin:0 
}
li { 
  margin:0;
  padding: 0; 
  padding-left: 20px; 
}
li > div:hover { 
  background-color: #eee
}
<div style="position:relative">
  <ul>
    <li><div>Root</div>
      <ul>
        <li><div>A</div>
          <ul>
            <li><div>AA</div></li>
            <li><div>AB</div></li>
          </ul>
        </li>
        <li><div>B</div>
          <ul>
            <li><div>BA</div></li>
            <li><div>BB</div></li>
          </ul>
        </li>
      </ul>
    </li>
  </ul>
</div>

最佳答案

您可以使用此 CSS 使您的 div 填充缩进,以便在 :hover 效果上不会留下未着色的空间,然后将溢出设置为隐藏在父包装器上。

li div{
  padding-left: 100%;
  margin-left: -100%;
}

这种方式是通用的,因此您可以拥有尽可能多的子 <ul><li>根据需要标记。这是一个链接 JSFiddle有一个工作示例。

关于html - 全宽 :hover background for nested lists?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5848090/

相关文章:

html - Bootstrap 侧边栏和导航栏下的内容

javascript - 在不加载完整文件的情况下跳到 HTML5 音频元素中的特定时间

javascript - 允许元素水平 float 离开屏幕

responsive-design - 如何覆盖 Foundation 的显示 :inherit property for visibility classes?

基于另一个 div 样式的 JavaScript 样式 div [帮助]

Jquery 可拖动和可排序

javascript - 输入值属性未在搜索栏上显示全文

javascript - 处理多个点击事件的最佳方式

javascript - 如果我通过 Javascript 更改 <option> 元素上的属性 "selected"会发生什么情况?

javascript - 更新特定的 div id 类