+ -
当前位置:首页 → 问答吧 → CSS制作圆角导航的另一方法

CSS制作圆角导航的另一方法

时间:2008-10-06

来源:互联网

制作圆角导航其实跟制作圆角边框是一样的道理,有一种很常见的方法就是使用CSS绝对定位,切四个圆角的小图片,然后分别定位在四个角,这样就可以实现自动伸缩。但是这样的代码因为嵌套的DIV过多,而显得有些复杂,这里提供另外一种思路,即是通过CSS背景的定位去制作。

在CSS背景属性中有一项是background-position,即是背景图像的定位,属性值可用英文(top | center | bottom | left | center | right)来定位,也可使用数值来定位,使用数值需要注意的是,当只有一个数值时,这个值将用于横坐标,纵坐标将默认是50%,如果有两个数值时,则分别是横坐标、纵坐标。通过background-position这个属性可以让背景图像随意定位在需要的位置。

在CSS背景属性中还有另外一项是background-repeat,即背景图像是否平铺。通过这个属性可以决定背景图像的平铺方式,是在纵向上平铺,还是在横向上平铺,或者是不平铺。


结合上面的两个背景属性,不使用绝对定位制作圆角导航的思路就出来了,即可通过两个分别定位左右背景图像的DIV再嵌套中间导航正文部分的UL,利用三者的长度错位来实现。HTML结构代码与CSS样式代码:





Nav







  • 导航一

  • 导航二

  • 导航三

  • 导航四







从上面的结构代码可以看出,在
    标签外面套两个DIV,给每个DIV设定一个背景图像,然后分别设定背景图像的平铺方式为不平铺,再设定两个DIV的背景图像一个靠左一个靠右,最后是
      也就是导航条中间部分的背景,设定它的平铺方式为横向平铺。

      圆角的可自动伸缩适应的导航条就做完了,这其中还有一些小地方是值得注意的:

      1、外面两个DIV的padding数值是圆角图片的宽度;

      2、在背景图像属性中增加与图片颜色相近的颜色值,这样可以在图片丢失或未加载完成时保证易读性;

      3、如果在一开始没有设定全局样式*{margin:0; padding:0;}时,那么
        的属性里就必须设定“margin:0; padding:0;”,否则在IE下,导航条的
          前面会出现一段空白,这在Firefox下是没有的。

          圆角导航由于可以不用考虑高度的自适应,所以相对于圆角边框来说要容易上一些,但圆角边框的制作依然可以根据制作圆角导航的方式来制作,分为上中下三个DIV,上下两个DIV就跟圆角导航的一样。

作者: 蓝水宝盒   发布时间: 2008-10-06