html - 相对定位的 parent 不作为绝对定位的 child 的 anchor

标签 html css

<分区>

绝对定位元素使用 body 元素作为 anchor 而不是父 a 元素

* { box-sizing: border-box }
a { text-decoration: none  }
body { font-family: Calibri; padding-top: 30px; }

#menu {
    border: 1px solid red;
    padding: 10px;
    display: flex;
    flex-flow: row nowrap;
}

#menu > a {
    position: relative;
}

#menu > a, #submenu > a {
    width: 100px;
    line-height: 40px;
    text-align: center;
    background-color: rgb(238, 238, 238);
    border-right: 1px solid black;
}

#menu > a:hover, #submenu > a:hover {
    background-color: #fff;
}

#submenu {
    display: flex;
    flex-flow: column nowrap;
    position: absolute;
    top: 40px;
}
<div id="menu">
    <a href="#">Menu Item</a>
    <a href="#">Menu Item</a>
    <a href="#">Menu Item</a>
        <div id="submenu">
            <a href="#">Sub Menu</a>
            <a href="#">Sub Menu</a>
            <a href="#">Sub Menu</a>
            <a href="#">Sub Menu</a>
        </div>
    <a href="#">Menu Item</a>
</div>

最佳答案

根据你的问题 absolute-submenu 应该在 relative-menu3 内,只是修复了标记,希望这是你面临的问题

* { box-sizing: border-box }
a { text-decoration: none  }
body { font-family: Calibri; padding-top: 30px; }

#menu {
    border: 1px solid red;
    padding: 10px;
    display: flex;
    flex-flow: row nowrap;
}

#menu > a {
    position: relative;
}

#menu > a, #submenu > a {
    width: 100px;
    line-height: 40px;
    text-align: center;
    background-color: rgb(238, 238, 238);
    border-right: 1px solid black;
}

#menu > a:hover, #submenu > a:hover {
    background-color: #fff;
}

#submenu {
    display: flex;
    flex-flow: column nowrap;
    position: absolute;
    top: 40px;
}
<div id="menu">
    <a href="#">Menu Item</a>
    <a href="#">Menu Item</a>
    <a href="#">
        Menu Item
        <p id="submenu">
            <a href="#">Sub Menu</a>
            <a href="#">Sub Menu</a>
            <a href="#">Sub Menu</a>
            <a href="#">Sub Menu</a>
        </p>
    </a>
    <a href="#">Menu Item</a>
</div>

关于html - 相对定位的 parent 不作为绝对定位的 child 的 anchor ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51722261/

上一篇:jquery - 单击时,将背景颜色从一个按钮滑动到另一个按钮

下一篇:css - 通过 Flex Box 进行简单布局

相关文章:

html - 对齐内容 - 在 bootstrap 中的导航栏内

jquery - 如何对齐 div 的 Bootstrap 列中间?

jquery - 在输入焦点上更改占位符范围的字体颜色

html - 使用 css transition 滑动效果 - div 在幻灯片之前显示

html - 锁定图像,使其不会相对于其他对象移动 html

php - 通过 php 调用的 javascript 重置表单

html - 奇怪的 Bootstrap 响应问题

html - 我如何在我的标题中将我的 li 在我的 ul 中垂直居中?

css - 尝试填充/边距后 div 在 css 中的位置没有改变

javascript - 纯JavaScript解决方案数字输入会显示2位小数