我的网站有一个水平菜单,里面的物品没有边框。但我希望它在鼠标悬停上有1px边框,所以当我将鼠标移动到它上面时,这个新创建的边框将其他元素向左移动约2px(因为 = = 1px)。如何阻止js创建边界来影响其他元素?
这是我的代码
<div id="library_category_wrapper">
<ul>
<li><a href="#">Item1</a></li>
<li><a href="#">Item1</a></li>
<li><a href="#">Item1</a></li>
<li><a href="#">Item1</a></li>
</ul>
</div>
,这是CSS
#library_category_wrapper ul
{
list-style: none;
float: right;
position: relative;
top:5px;
margin: auto;
}
#library_category_wrapper ul li
{
display: inline;
margin-left:8px;
padding : 4px;
}
#library_category_wrapper li:hover
{
background: none repeat scroll 0 0 rgba(0, 0, 0, 0);
border : 1px solid rgba(0, 0, 0, 0.25);
border-radius : 4px 4px 4px 4px;
box-shadow : 0 0 5px rgba(0, 0, 0, 0.4) inset, 0 1px 0 rgba(255, 255, 255, 0.1);
text-shadow : 0 -1px 0 rgba(0, 0, 0, 0.796), 0 0 10px rgba(255, 255, 255, 0.298);
padding : 4px;
}
这是DEMO
@opznhaarlems的回答达到了同样的事情,但有更好的浏览器的支持,所以最好去这一点。 – CherryFlavourPez
@CherryFlavourPez,穆罕默德已经在原来的CSS中使用rgba,所以没有理由不使用它。 –
好吧,在没有其他选择的地方。在这里,“transparent”以更一致的方式实现*精确*相同的事物。那么你为什么不使用它? – CherryFlavourPez