jquery - 带有 JQuery 的菜单中的 CSS Sprites 问题

标签 jquery html css

<分区>

我得到了一个属于其他人的代码库。我的截止日期很紧,而且我已经在这个问题上转了一段时间。此代码使用页面顶部的表格。该表有一个下拉菜单。由于品牌需要,菜单由 CSS Sprite 组成。每个根元素(“home”、“about”、“services”)都有不同的大小。每个菜单的子项的大小始终相同。

菜单呈现正常,但有两个异常(exception):

  1. 在 IE 9 中,菜单看起来不错。在 Chrome(我怀疑其他浏览器)中,根元素(“home”、“about”、“services”)在鼠标悬停时改变大小。这种尺寸变化会导致主图像文件中下一张图像的一部分出现。我只想要我需要显示的根元素图像。
  2. 菜单似乎从单元格的垂直中间下拉。我只想显示菜单。目前,它正在制作动画。我如何让它只出现?

最佳答案

从不同的 Angular 来看这个问题似乎会容易得多。与其使用 sprite 来达到预期的结果,不如从 javascript 的 Angular 来看待它……你已经成功了一半!

  1. 从您良好、干净的 UL 列表开始。身材还不错,不过 需要一些格式调整:

    <ul id='menu'><br/> <li><a href="#aa">Home</a></li><br/> <ul> <li class="current"><a href="/About/News.aspx">News</a></li> <li><a href="/About/Mission.aspx">Mission Statement</a></li> </ul><br/> </li><br/> ... </ul>

简而言之,每次您需要另一个嵌套元素时,在您的 li 中放入一个列表。放弃点击和其他“额外”,Superfish 会为您做到这一点。

  1. 添加Superfish到您的页面并在 UL 列表中调用它

    $(document).ready(function(){
        $("ul.menu").superfish();
    });
    
  2. <li> 上使用 CSS 设置背景元素。

  3. 使用 JqueryUI 为所需元素设置圆 Angular 。为左下角添加类“ui-corner-bl”,为右下角添加类“ui-corner-br”等。

  4. 通过 CSS 调整悬停

我前段时间使用了这个解决方案来替换一个与您正在处理的菜单类似的非常糟糕的菜单。菜单有很多行为——尤其是当它们像我的网站那样巨大且嵌套时——所以它们需要耐心。但是,此解决方案将使您更容易维护,就像其中一个菜单项发生变化一样,您只需在代码中更改它,而不是使用图形。仅此一项就可以增加时间。此外,由于要下载的内容更少,您的速度会有所提高。

关于jquery - 带有 JQuery 的菜单中的 CSS Sprites 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5513733/

上一篇:css - 采取什么方法来确保移动网络图像在所有移动设备中正确呈现?

下一篇:css - 页面 didvision 与 css

相关文章:

html - 如何在不同标签之间添加空格

javascript - 在 IE 中滚动颜色框

javascript - 如何使用保存的 html 从 Gridstack 构建网格

html - 图像在 IE 中显示,而不是 Chrome 或 Firefox - http ://localhost:11/myFile being Prepended

html - 无法使不可见文本可见(字体大小 : 0)

javascript - $ ('#id1' ).html ("") 从 DOM 中删除 #id1 的所有子级,或者它们仍然存在?

javascript - 从 PHP 动态上传的目录中存在的 .txt 文件中查找关键字

jquery - Owl Carousel - 类型错误 : Cannot read property 'fn' of undefined

javascript - Mapbox - map 上的图像 - 从 url 导入图像会引发错误

jquery - load() 函数有问题