<li>列表项和<a>定位标记之间的菜单中的交互不一致

吉米·吉姆

为什么ul“菜单项2”中的下拉列表没有完全与其父li元素的顶部对齐

将下拉ulCSS设置为:

position:absolute;
top:0;
left:0;

我希望它从父元素的左上角开始覆盖,即完全覆盖它。

一些令人困惑的症状:

我希望父菜单可单击,并且在某些情况下具有下拉菜单。因此,在有下拉菜单的地方,父菜单<li>有一个<a>填充的菜单,以增加可点击的区域。<li>由于li:hover显示了相同的填充区域因此还增加了contains。这可以按需工作。

但是,当下拉列表显示并对齐时<li><li>似乎位于之前被展开的位置<a>当我在浏览器(Chrome和Firefox)中签入时,该<li>元素实际上并未填充与相同的空间<a>,因此该下拉列表显示在所需位置以下

我知道我可以在绝对定位的下拉列表中使用top:SOME_NEGATIVE_OFFSET,但这感觉很hacky,我想了解发生了什么?

这是我的第一篇文章,请对我轻松一点:)

<!DOCTYPE html>
<html>
<head>
<title>DropDownTest</title>
<style>
ul{
  list-style:none;
  margin:0;
  padding:0;
}
li{
  display:block;
  position:relative;
}
li>a{
  padding:1rem;
  background-color:grey;
}
li>a:hover{
  background-color:lightgray;
}
.mainbar>li{
 float:left;
}
li.hasDrop:hover>ul{
  display:block;
}
.dropContent{
  display:none;
  position:absolute;
  top:0; /*not working as expected*/
  left:0;
  margin:0;/*thought this might have helped but no*/
  padding:0;
  z-index:1;
  list-style:none;
  min-width:100%;
}
.dropContent>li>a{
  display:block;
}
</style>
</head>
<body>
<div>
<ul class="mainbar">
  <li><a href="#">Menu Item 1</a></li>
    <li class="hasDrop">
      <a href="#">Menu Item 2</a>
      <ul class="dropContent">
        <li><a href="#">Sub 1</a></li>
        <li><a href="#">Sub 2</a></li>
        <li><a href="#">Sub 3</a></li>
      </ul>
  </li>
  <li><a href="#">Menu Item 3</a></li>
</ul>
</div>
</body>
</html>

汉斯·费利克斯·拉莫斯(Hans Felix Ramos)

发生这种情况是因为您的a元素将填充作为嵌入式元素。

修改此规则:

li>a {
  padding: 1rem;
  background-color: grey;
  display: block; /* this*/
}

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

li {
  display: block;
  position: relative;
}

li>a {
  padding: 1rem;
  background-color: grey;
  display: block; /* this*/
}

li>a:hover {
  background-color: lightgray;
}

.mainbar>li {
  float: left;
}

li.hasDrop:hover>ul {
  display: block;
}

.dropContent {
  display: none;
  position: absolute;
  top: 0;
  /*not working as expected*/
  left: 0;
  margin: 0;
  /*thought this might have helped but no*/
  padding: 0;
  z-index: 1;
  list-style: none;
  min-width: 100%;
}

.dropContent>li>a {
  display: block;
}
<div>
  <ul class="mainbar">
    <li><a href="#">Menu Item 1</a></li>
    
    <li class="hasDrop">
      <a href="#">Menu Item 2</a>
      <ul class="dropContent">
        <li><a href="#">Sub 1</a></li>
        <li><a href="#">Sub 2</a></li>
        <li><a href="#">Sub 3</a></li>
      </ul>
    </li>
    
    <li><a href="#">Menu Item 3</a></li>
  </ul>
</div>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

iOS 8中UISearchController和UINavigationController之间的交互不一致

来自分类Dev

在UL内部使用列表项和锚标记<li> <a> </a> </ li>附加内容

来自分类Dev

如何使用jquery(最好)显示和隐藏无序列表(ul)中的列表项(li)元素?

来自分类Dev

禁止<li>元素的列表项标记

来自分类Dev

如何在angular js的嵌套ul li ul li列表项中重复数据?

来自分类Dev

列表项标记的位置不一致,具体取决于孩子的显示属性

来自分类Dev

列表项标记的位置不一致,具体取决于孩子的显示属性

来自分类Dev

C# 列表项值不一致

来自分类Dev

如何过滤/搜索列表项和标记

来自分类Dev

菜单列表项和顶部边框

来自分类Dev

如何使用选定的li列表项的文本更改下拉菜单中按钮的文本-jQuery

来自分类Dev

使用Jquery一次仅显示5 li(列表项)

来自分类Dev

从左到右滑动列表项时只显示一个 li 项

来自分类Dev

(Ba)sh参数扩展在脚本和交互式Shell中不一致

来自分类Dev

如何在ul(无序列表)中查找下一个li(列表项)的ID

来自分类Dev

克隆和删除列表项,但如果是列表项,则阻止删除第一个

来自分类Dev

离子性:区分单击列表项和列表项中的按钮

来自分类Dev

列表项之间的间隙和DIV中的神秘间距

来自分类Dev

下拉菜单(带有图像和UL LI列表)

来自分类Dev

gcc和clang之间的C ++不一致

来自分类Dev

序列和seqiplot之间不一致

来自分类Dev

int和bool之间的不一致

来自分类Dev

Rectangle和FancyBboxPatch之间的行为不一致

来自分类Dev

gcc和clang之间的C ++不一致

来自分类Dev

ntpd和ntpdate之间不一致

来自分类Dev

使用jQuery在ul li列表中的所有li块中找到最深和最后一个li?

来自分类Dev

消除列表项和导航顶部之间的间隙

来自分类Dev

如何在删除列表中单词之间的连字符时克服不一致

来自分类Dev

如何在python中修改和打印列表项?

Related 相关文章

  1. 1

    iOS 8中UISearchController和UINavigationController之间的交互不一致

  2. 2

    在UL内部使用列表项和锚标记<li> <a> </a> </ li>附加内容

  3. 3

    如何使用jquery(最好)显示和隐藏无序列表(ul)中的列表项(li)元素?

  4. 4

    禁止<li>元素的列表项标记

  5. 5

    如何在angular js的嵌套ul li ul li列表项中重复数据?

  6. 6

    列表项标记的位置不一致,具体取决于孩子的显示属性

  7. 7

    列表项标记的位置不一致,具体取决于孩子的显示属性

  8. 8

    C# 列表项值不一致

  9. 9

    如何过滤/搜索列表项和标记

  10. 10

    菜单列表项和顶部边框

  11. 11

    如何使用选定的li列表项的文本更改下拉菜单中按钮的文本-jQuery

  12. 12

    使用Jquery一次仅显示5 li(列表项)

  13. 13

    从左到右滑动列表项时只显示一个 li 项

  14. 14

    (Ba)sh参数扩展在脚本和交互式Shell中不一致

  15. 15

    如何在ul(无序列表)中查找下一个li(列表项)的ID

  16. 16

    克隆和删除列表项,但如果是列表项,则阻止删除第一个

  17. 17

    离子性:区分单击列表项和列表项中的按钮

  18. 18

    列表项之间的间隙和DIV中的神秘间距

  19. 19

    下拉菜单(带有图像和UL LI列表)

  20. 20

    gcc和clang之间的C ++不一致

  21. 21

    序列和seqiplot之间不一致

  22. 22

    int和bool之间的不一致

  23. 23

    Rectangle和FancyBboxPatch之间的行为不一致

  24. 24

    gcc和clang之间的C ++不一致

  25. 25

    ntpd和ntpdate之间不一致

  26. 26

    使用jQuery在ul li列表中的所有li块中找到最深和最后一个li?

  27. 27

    消除列表项和导航顶部之间的间隙

  28. 28

    如何在删除列表中单词之间的连字符时克服不一致

  29. 29

    如何在python中修改和打印列表项?

热门标签

归档