当鼠标悬停时,将按钮的宽度增加几个百分点

9
所以,我已经做好了这个。
HTML
<div id="navholder" class="bgd">
<nav id="nav">
    <ul>
        <li><a href="">Почетна</a></li>
        <li><a href="">Делатност</a></li>
        <li><a href="">Историјат</a></li>
        <li><a href="">Службе</a></li>
        <li><a href="">Колектив</a></li>
        <li><a href="">Контакт</a></li>
    </ul>
</nav>
</div>

#navholder {
height: 60px;
text-align: center;
margin: 0 auto;
    }

#nav {
height: 30px;
margin-top: 10px;
background: #B8860B;
    }

#nav ul li{
margin-top: 3px;
display: inline;
font-size: 120%;
opacity: 1.0;
    }

#nav ul li a {
display: inline-block;
height: 120%;
padding: 5px;
-webkit-box-shadow: -1px 0px 22px rgba(50, 50, 50, 0.5);
-moz-box-shadow:    -1px 0px 22px rgba(50, 50, 50, 0.5);
box-shadow:         -1px 0px 22px rgba(50, 50, 50, 0.5);
border: 1px solid white;    
opacity: 1.0;
background: #DAA520;

    }

#nav a:hover {
color: white;
background: black;
width: ?
    }

我希望鼠标悬停在按钮上时,按钮的大小能够增加约20%。我遇到的问题是,如果我使用精确的宽度,例如"width: 60px",那么并不是每个按钮的大小都相同。

另一方面,如果我使用"width: 120%",我认为页面会采用整个#navholder元素的宽度,该元素由类.bgd定义。

有任何想法可以实现这一点吗?

谢谢。

3个回答

19

1
+1!这绝对是针对此特定问题最干净的解决方案,因为它不依赖于大小调整方法和元素上下文。 - jwueller
这个非常好用。非常感谢你的帮助JoshC。同时也感谢其他回答的人们。 - Nikola L.
请注意,浏览器支持仅限于IE9+,并且需要-ms-transform属性。http://caniuse.com/transforms2d - jeffjenx

2

当鼠标悬停时增加填充量:

#nav a:hover {
   color: white;
   background: black;
   padding: 5px 10px; /* 5px top/bottom, 10px left/right */
}

尽管使用四面填充的内边距,带有负的 topleft 偏移的 position: relative; 以及 font-size: 1.3em; 可以更准确地复制 scale() 转换,但大多数浏览器现在都可以理解 CSS3 转换。 - jeffjenx

-2

您可以使用 em 设置宽度并增加字体大小。

此外,您可以在悬停时添加边框/填充:

#nav a:hover {
    border-right: solid 20px black;
    /* or padding-right */
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接