首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >纯CSS下拉菜单-边框覆盖

纯CSS下拉菜单-边框覆盖
EN

Stack Overflow用户
提问于 2015-10-07 22:46:23
回答 2查看 500关注 0票数 0

我正在尝试在菜单和子菜单周围有边框,并将它们包装在一个盒子中。

我正在尝试使用顶部菜单上的白色边框底部来覆盖子菜单上的边框,以使其具有更多的视觉效果。

问题是我没有看到“顶部菜单上的白色底部边框”覆盖了“子菜单中的顶部边框”。我已经给它添加了z-index,但是它没有解决这个问题。

请在http://jsfiddle.net/fjfhan4L/上查看代码

代码语言:javascript
复制
<h2 style="clear:both;">Menu 6 (clean up)</h2>
<nav class="menu-6">
    <ul>
        <li><a href="#">Tutorials</a>
            <ul>
                <li><a href="#">Photoshop</a></li>
                <li><a href="#">Illustrator</a></li>
                <li><a href="#">Web Design</a></li>
            </ul>
        </li>
        <li><a href="#">Articles</a>
            <ul>
                <li><a href="#">Web Design</a></li>
                <li><a href="#">User Experience</a></li>
            </ul>
        </li>
        <li style="float:none; clear:both;"></li>
    </ul>
</nav> 

   nav.menu-6 ul{
    list-style:none;
}

nav.menu-6 > ul{
    background-color: yellow;
}

nav.menu-6 a{
    text-decoration: none;
}

nav.menu-6 > ul > li{
    float:left;
    padding-right: 100px;
    display: relative;
}

nav.menu-6 > ul > li > a{
    position: relative;
    display: block;
    z-index: 2;
}

nav.menu-6 > ul > li:hover > a{
    border: solid #000 1px;
    border-bottom: solid #fff 1px;     /* overwrite the sub menu top border */ 
}   

nav.menu-6 ul li > ul{
    display: none;
    position: absolute;
    border: solid #000 1px;
    z-index: 1;
}

nav.menu-6 > ul > li:hover ul{
    display:block;
}  
EN

回答 2

Stack Overflow用户

发布于 2015-10-07 23:14:43

这应该是可行的:

代码语言:javascript
复制
nav.menu-6 ul li > ul {
display: none;
position: absolute;
border: solid #000 1px;
z-index: 1;
margin-top: -1px; /* this is all you're adding to the css */

}

你只需要在上面的css中添加“above top:-1px”,它就可以解决你的问题了。我没有在多个浏览器上检查它,但它在你提供的小提琴上工作,至少如果我在这个问题中寻找的是正确的话。

票数 2
EN

Stack Overflow用户

发布于 2015-10-07 23:22:23

使用:before psuedo元素,而不是使用border-bottom覆盖其他边框:

HTML

代码语言:javascript
复制
<h2 style="clear:both;">Menu 6 (clean up)</h2>
    <nav class="menu-6">
        <ul>
            <li><a href="#">Tutorials</a>
                <ul>
                    <li><a href="#">Photoshop</a></li>
                    <li><a href="#">Illustrator</a></li>
                    <li><a href="#">Web Design</a></li>
                </ul>
            </li>
            <li><a href="#">Articles</a>
                <ul>
                    <li><a href="#">Web Design</a></li>
                    <li><a href="#">User Experience</a></li>
                </ul>
            </li>
        <li style="float:none; clear:both;"></li>
    </ul>
</nav> 

CSS

代码语言:javascript
复制
nav.menu-6 ul{
    list-style:none;
}

nav.menu-6 > ul{
    background-color: yellow;
}

nav.menu-6 a{
    text-decoration: none;
}

nav.menu-6 > ul > li{
    float:left;
    padding-right: 100px;
    display: relative;
}

nav.menu-6 > ul > li > a{
    position: relative;
    display: block;
    z-index: 2;
}

/* Set parent element relative */
nav.menu-6 > ul > li a { position:relative;} 

/* before element */  
nav.menu-6 > ul > li a:after { position:absolute; content:""; width:100%;             height:1px; left:0; bottom:-2px; opacity:0; z-index:9999; background:#fff;}
nav.menu-6 > ul > li:hover a:after { opacity:1;}

nav.menu-6 > ul > li:hover > a{
    border: solid #000 1px;
}   

nav.menu-6 ul li > ul{
    display: none;
    position: absolute;
    border: solid #000 1px;
    z-index: 1;
}

nav.menu-6 > ul > li:hover ul{
    display:block;
}  

查看fiddle:http://jsfiddle.net/ggChris/hebhrd8o/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32995392

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档