我了解您在寻找什么,并使我的 jsfiddle 尽可能接近您的。我没有使用您提供的图像,而是使用了图标字体,如果您打算使用许多图像,这很有用。我从 icomoon.io 的Keyamoon获得了我的图标字体。这是一个非常好的工具,您绝对应该将它用于您需要的任何其他图标。我从 Egemen Kapusuz 的 Icon Minia 中挑选了我的。您可以看到我使用的图标,如果只有这些图标,您只需从jsfiddle中的 @font-face url或从此处下载文件:
@font-face {
font-family: 'IHK';
src:url('http://ilanshomekitchen.x10.mx/icon font testing/IHK.eot');
src:url('http://ilanshomekitchen.x10.mx/icon font testing/IHK.eot?#iefix') format('embedded-opentype'),
url('http://ilanshomekitchen.x10.mx/icon font testing/IHK.svg#IHK') format('svg'),
url('http://ilanshomekitchen.x10.mx/icon font testing/IHK.woff') format('woff'),
url('http://ilanshomekitchen.x10.mx/icon font testing/IHK.ttf') format('truetype');
font-weight: normal;
font-style: normal;
}
您可以从此处复制链接,如果您只需要这 3 个图标,它将为您提供要下载的字体文件。图标字体很棒,因为您可以将图标字体全部打包成 1 个 HTTP 请求,而不是为每个背景或图标加载 1 个图像或其他任何内容,从而使它们在传输中更加高效,并且也更加可定制。图标字体只是一种字体,因此您也可以更轻松地操作它们;你可以改变字体的颜色,抗锯齿,就像一个真正的文本字体。
我用一些 jQuery 重写了你的代码,因为你的代码看起来很混乱而且有点难以理解,所以如果你想使用我的确切 jsfiddle,你需要从 CDN 添加一个 jquery 源链接或在你的主机上托管你自己的副本服务器。jquery.com将有大量关于此的信息。
所以对于我的 HTML:
HTML:
<nav>
<ul>
<li><a href="#" >Sec1</a></li>
<li><a href="#" >Sec2</a></li>
<li><a href="#" class="current">Sec3</a></li>
<li><a href="contacto.html" >Sec4</a></li>
<ul class="menu">
<li><a href="#" class="documents" data-icon="">Documents</a></li>
<br>
<li><a href="#" class="messages" data-icon="">Messages</a></li>
<br>
<li><a href="#" class="signout" data-icon="">Sign Out</a></li>
</ul>
</ul>
</nav>
html 有一些新属性,我将其命名为 data-icon。我使用这些来合并图标字体中的图标,而无需在 DOM 中添加官方元素。浏览器对此的支持有点新,所以你应该研究一个冗余的图标方案,以防用户使用不支持图标字体的旧浏览器和你也有的其他新功能,比如border-radius
和transitions
.
对 CSS 进行了大量修改以使用伪选择器,这非常有用。另外,我现在有 jQuery 的导航栏,所以它应该得到很好的支持,因为 jQuery 是一个跨浏览器的 JavaScript 库。
我唯一无法解决的是这个小问题,第二导航级别中的悬停文本会跳跃,我不知道为什么会发生这种情况,我会调查它,但现在,这就是我能够做到的为你生产。