我在导航中使用 CSS 样式的剪辑路径来改变角落背景的形状。在我向内容区域添加下拉列表之前,这可以正常工作。
当下拉菜单被隐藏时,形状会正确显示,当下拉菜单可见时,形状会发生变化。根据我的研究,这是由于剪辑路径使用元素宽度和高度来确定元素的剪辑,并且当下拉列表可见时,元素高度会发生变化。
有没有办法改变这种行为?我的目标是保持相同的剪辑,无论下拉菜单是否可见。
CSS
.dropdown {
background-color: #000;
-webkit-clip-path: polygon(100% 0,100% 0,100% 100%,10% 100%,0 0);
clip-path: polygon(100% 0,100% 0,100% 100%,10% 100%,0 0);
padding-left: 50px;
}
.nav .open>a:focus,
.nav>li>a:focus,
.nav>li>a:hover,
.dropdown:focus,
.dropdown:hover,
.nav .open>a {
background-color: #000;
}
.dropdown-menu {
float: right;
right: 0px;
left: auto;
}`
HTML
<div id="navbar">
<ul class="nav navbar-nav">
<li class="active"><a href="#">Home</a></li>
<li><a href="#about">About</a></li>
<li><a href="#contact">Contact</a></li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Dropdown menu goes here <span class="caret"></span></a>
<ul class="dropdown-menu">
<li><a href="#">Action</a></li>
</ul>
</li>
</ul>
</div>
JSFiddle