Html 如何使用圆形图像背景修复CSS菜单

Html 如何使用圆形图像背景修复CSS菜单,html,css,Html,Css,我想在左右菜单上显示圆形图像。您可以看到示例。背景图像为: <ul> <li><a class="current" href="">Home</a></li> <li><a href="">Faq</a></li> <li><a href="">About</a></li> </ul>

我想在左右菜单上显示圆形图像。您可以看到示例。背景图像为:

<ul>
    <li><a class="current" href="">Home</a></li>
    <li><a href="">Faq</a></li>
    <li><a href="">About</a></li>    
</ul>

让我知道CSS在不剪切当前图像的情况下实现目标的技巧


结果应该是这样的



是使用
滑动门技术的最终结果

您应该使用
边框半径:5px
背景:线性渐变(起始颜色、结束颜色)

对于IE支持,请使用


例如,在中,您应该使用
边框半径:5px
背景:线性渐变(起始颜色、结束颜色)

对于IE支持,请使用


例如,您是否尝试将图像用作精灵

如果是这样,你必须在背景上选择不同的位置,
您还必须为每个元素定义高度和宽度。

您是否尝试将图像用作精灵

如果是这样,你必须在背景上选择不同的位置,
你还必须为每个元素定义一个高度和宽度。

你可以使用CSS圆角,它与你的背景图像配合得很好(尽管你不需要圆角,图像也不需要这么宽-10px宽,因为它重复-x)

li a:link, li a:visited {
     background-image: url('../images/navBg.jpg');
     background-repeat: repeat-x;
     background-position: top left;
    -moz-border-radius: 5px;
    -webkit-border-radius: 5px;
    -khtml-border-radius: 5px;
    }

li a:hover, li a:active{
    background-position: bottom left;
    }

你可以使用CSS圆角,它可以很好地与你的背景图像一起工作(虽然你不需要图像的圆角,图像也不需要太宽-10px宽,因为它重复-x

li a:link, li a:visited {
     background-image: url('../images/navBg.jpg');
     background-repeat: repeat-x;
     background-position: top left;
    -moz-border-radius: 5px;
    -webkit-border-radius: 5px;
    -khtml-border-radius: 5px;
    }

li a:hover, li a:active{
    background-position: bottom left;
    }

使用滑动门技术。 您的主要问题是
  • s是浮动的,因此
    的高度为0。您可以同时浮动ul,也可以将其设置为
    溢出:隐藏

    ================================

    更新: 对不起,速读总有一天会杀了我:)

    以下是我最新的答案:

    将此添加到css:

    li {
    padding-left: 10px;/* to create gap that will not be overlapped with <a> background */
    background:url(http://i.stack.imgur.com/yLgZA.png) no-repeat left top #000;
    
    }
    li a, li a.current {
    background:url(http://i.stack.imgur.com/yLgZA.png) no-repeat right top #000;
        text-indent: -10px; /* same as li padding, to realign centered text */
    }
    
    li{
    左填充:10px;/*以创建不会与背景重叠的间隙*/
    背景:url(http://i.stack.imgur.com/yLgZA.png)不重复左上角#000;
    }
    李安,李安{
    背景:url(http://i.stack.imgur.com/yLgZA.png)无重复右上角#000;
    文本缩进:-10px;/*与li填充相同,以重新对齐居中文本*/
    }
    

    这是您应该添加悬停状态的基础。

    使用滑动门技术。 您的主要问题是
  • s是浮动的,因此
    的高度为0。您可以同时浮动ul,也可以将其设置为
    溢出:隐藏

    ================================

    更新: 对不起,速读总有一天会杀了我:)

    以下是我最新的答案:

    将此添加到css:

    li {
    padding-left: 10px;/* to create gap that will not be overlapped with <a> background */
    background:url(http://i.stack.imgur.com/yLgZA.png) no-repeat left top #000;
    
    }
    li a, li a.current {
    background:url(http://i.stack.imgur.com/yLgZA.png) no-repeat right top #000;
        text-indent: -10px; /* same as li padding, to realign centered text */
    }
    
    li{
    左填充:10px;/*以创建不会与背景重叠的间隙*/
    背景:url(http://i.stack.imgur.com/yLgZA.png)不重复左上角#000;
    }
    李安,李安{
    背景:url(http://i.stack.imgur.com/yLgZA.png)无重复右上角#000;
    文本缩进:-10px;/*与li填充相同,以重新对齐居中文本*/
    }
    

    这是基本的,您应该添加悬停状态。

    我认为如果不使用CSS3中的高级内容,您不可能做到这一点——但我假设您不能使用CSS3,因为否则您只需要使用border radius。要在IE中实现这类功能,您必须使用一些div(一个用于保持左侧,一个用于保持右侧,一个用于保持中间)。我认为如果不使用CSS3中的高级内容,您无法实现这一点,但我假设您不能使用CSS3,因为否则您只需使用border radius即可。要在IE中实现这类功能,您必须使用几个div(一个按住左边,一个按住右边,一个按住中间)。我发现答案的最后一句是关于这一点的,我不是来做全职工作的,而是来举个例子;)我发现答案的最后一句是关于这一点的,我不是来做全职工作的,而是来举个例子;)