在下面的代码中,我将底部边框设置为ul.将鼠标悬停在ul中的项目上时,我想在ul边框上准确显示底部边框或悬停项.我无法设置两个边框(ul和ul项)的位置,以便它们在悬停时相互依赖.
我尝试过使用绝对位置和线高,但无法取得多大成功.
这就是我想要的:
这是代码:
HTML:
<div class="Box"> <ul> <li><a href="#">test 1</a></li> <li><a href="#">test 2</a></li> </ul> </div>
CSS:
ul{ list-style: none; padding: 0 0 10px; margin: 0; border-bottom: 5px solid green; overflow: hidden; } ul li{ float: left; margin-left: 20px; } a{ text-decoration: none; display: block; } a:hover{ border-bottom: 5px solid red; }
解决方法
您想要定位ul和li – 将子li的底部偏移到边框的宽度,同时将其设置为透明,然后使用li:hover事件/选择器将broder颜色设置为红色.
使用以下CSS:
ul { list-style: none; margin: 0; border-bottom: 5px solid green; position:relative; padding:0; } ul li { padding:10px 10px; margin-left: 20px; display:inline-block; position:relative; bottom:-5px; /* <-- offset bottom of li by border width so it overlaps ul green border */ border-bottom: 5px solid transparent; /* add border,make transparent so it doesnt 'jump' on hover */ } a { text-decoration: none; display: block; } li:hover { border-color:red; /* <-- use the li hover event (not a hover) to color the border */ }