我在div
.menu
內有ul
菜單。父母.menu
有頂部和底部1px solid border
。當將鼠標懸停在li
元素上時,會添加另一個邊框,但父邊框仍然會出現在其上方。懸停時覆蓋父級邊框
我想在上懸停時不顯示.menu
頂部邊框我不想使用js,除非它是唯一的解決方案。
這是我的代碼和我的臨時修復。
HTML:
<div class="menu">
<ul>
<li><a href="#">Home</a></li>
<li><a href="#">Fun</a></li>
<li><a href="#">Work</a></li>
</ul>
</div>
CSS:
.menu{
width: 100%;
background-color: black;
/* I want this border to... ↓ */
border-top: 1px solid black;
border-bottom: 1px solid black;
box-sizing: border-box;
}
.menu ul{
list-style: none;
overflow: hidden;
margin: 0px;
height:35px;
}
.menu ul li{
display: block;
float:left;
border-left: 1px solid gray;
position: relative;
}
.menu ul a{
color: #FFF;
padding: 10px;
display: block;
}
.menu ul a:hover{
text-decoration: none;
background-color: white;
color: pink;
/* ...not be displayed above this border when hovering */
border-top: 3px solid pink;
}
我只找到這個低效的解決方案:
.menu ul:hover{
position: relative;
top: -1px;
}
Codepen鏈接:http://codepen.io/eldev/pen/YPYLQz?editors=110
有什麼想法?
修改:
backgound顏色是不一樣的邊框顏色我錯誤地做到了。更新了Codepen鏈接。
當前,您不能根據子選擇器來定位父項。你將不得不使用js這個,我建議你用它標記問題 – Huangism 2015-02-11 16:29:02
我只想問你爲什麼設置一個邊框,如果它是背景相同的顏色? – DaniP 2015-02-11 16:29:15
與Daniel相同的問題... – 2015-02-11 16:29:57