CSS制作圆角导航的另一思路
作者:Prower 来源:Prower 发布时间:2008-11-06 11:39:00
制作圆角导航其实跟制作圆角边框是一样的道理,有一种很常见的方法就是使用CSS绝对定位,切四个圆角的小图片,然后分别定位在四个角,这样就可以实现自动伸缩。但是这样的代码因为嵌套的DIV过多,而显得有些复杂,这里提供另外一种思路,即是通过CSS背景的定位去制作。
在CSS背景属性中有一项是background-position,即是背景图像的定位,属性值可用英文(top | center | bottom | left | center | right)来定位,也可使用数值来定位,使用数值需要注意的是,当只有一个数值时,这个值将用于横坐标,纵坐标将默认是50%,如果有两个数值时,则分别是横坐标、纵坐标。通过background-position这个属性可以让背景图像随意定位在需要的位置。
在CSS背景属性中还有另外一项是background-repeat,即背景图像是否平铺。通过这个属性可以决定背景图像的平铺方式,是在纵向上平铺,还是在横向上平铺,或者是不平铺。
结合上面的两个背景属性,不使用绝对定位制作圆角导航的思路就出来了,即可通过两个分别定位左右背景图像的DIV再嵌套中间导航正文部分的UL,利用三者的长度错位来实现。HTML结构代码与CSS样式代码:
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>
<html xmlns=”http://www.w3.org/1999/xhtml”>
<head>
<meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″ />
<title>Nav</title>
<style type=”text/css”>
body{font-size:12px;}
#navBox {background:#f00 url(images/left.jpg) no-repeat left bottom; height:24px; padding-left:5px;}
#nav {background:#f00 url(images/right.jpg) no-repeat right bottom; padding-right:5px; height:24px;}
ul {list-style:none; line-height:24px; background:#f00 url(images/navBg.jpg) repeat-x; height:24px; margin:0; padding:0;}
li {float:left; width:60px; text-align:center;}
</style>
</head>
<body>
<div id=”navBox”>
<div id=”nav”>
<ul>
<li>导航一</li>
<li>导航二</li>
<li>导航三</li>
<li>导航四</li>
</ul>
</div>
</div>
</body>
</html>
从上面的结构代码可以看出,在<ul />标签外面套两个DIV,给每个DIV设定一个背景图像,然后分别设定背景图像的平铺方式为不平铺,再设定两个DIV的背景图像一个靠左一个靠右,最后是<ul />也就是导航条中间部分的背景,设定它的平铺方式为横向平铺。
圆角的可自动伸缩适应的导航条就做完了,这其中还有一些小地方是值得注意的:
1、外面两个DIV的padding数值是圆角图片的宽度;
2、在背景图像属性中增加与图片颜色相近的颜色值,这样可以在图片丢失或未加载完成时保证易读性;
3、如果在一开始没有设定全局样式*{margin:0; padding:0;}时,那么<ul />的属性里就必须设定“margin:0; padding:0;”,否则在IE下,导航条的<ul />前面会出现一段空白,这在Firefox下是没有的。
圆角导航由于可以不用考虑高度的自适应,所以相对于圆角边框来说要容易上一些,但圆角边框的制作依然可以根据制作圆角导航的方式来制作,分为上中下三个DIV,上下两个DIV就跟圆角导航的一样。
猜你喜欢
- 1.导言现今的公司需要易访问的和可用性好的商业数据,以便他们可以在全球市场中获得一席之地。与易访问数据的这个需求相呼应的,关系数据库和分析数
- 八卦是种优良品质,特别是用在技术上时。来看几个Reset CSS的八卦问题吧:你知道世界上第一份reset.css在哪么?*&nb
- buffer:下载数据缓冲区,以字节为单位,缺省依赖操作系统 consistent:下载期间所涉及的数据保持read only,缺省为n d
- 哪行哪业都少不了基本功,都说“马步”要扎得稳。在都快说烂了的以目标用户为中心设计的今天,还是要勤练基本功的。不多说了,先了解下“设计的3个C
- 这篇论坛文章详细介绍了完全卸载MySQL数据库5.0的具体方法,更多内容请参考下文:数据库突然出了问题,没办法只能重装,因为事先并不知道My
- 最近在改一个页面,原来的编码是gb2312,为了国际化,改成utf-8,开始时浏览还是正常。因为电脑偶感小恙,于是恢复了系统,这才发现改后的
- 一、我希望画面尽量干净一点,这样看的人会舒服一点。撇开这个“设计常识”不谈,先回忆一些生活经验。设想一下你站在29楼阴暗的走廊里等待电梯,你
- 以下是menu.asp代码 程序代码 <% '-----------------------------------
- SQL语句参考及记录集对象详解1. ASP与Access数据库连接:2. ASP与SQL数据库连接:建立记录集对象:set rs=serve
- 注:文中未表明的地方output 输出都是基于IE6.0,其中表明FF的地方为Mozilla Firefox2.0,还要注意文中的大小写ja
- //关闭,父窗口弹出对话框,子窗口直接关闭this.Response.Write("<script language=jav
- 很多年前,我们就可以轻易的从很多国营商场、火车车厢、饭馆旅馆中看到墙上挂的那个小本本-意见薄,作为经营方与顾客沟通的
- 检测是否注册成功<% Set Jpeg =Server.CreateObject("Persi
- 其实这个问题落伍谈了n次了其中care4也说了两次所以如果你有问题最好先搜索一下 说不定问题早有人解决了http://www.im286.c
- 如IP为192.168.1.111现要截取第二个.之前的值,得到结果192.168,很多网站都只显示前面2个值 &nb
- 我们都知道在9i之前,要想获得建表和索引的语句是一件很麻烦的事。我们通常的做法都是通过export with rows=no来得到,但它的输
- 一、出错情况 有些时候当你重启了数据库服务,会发现有些数据库变成了正在恢复、置疑、可疑等情况,这个时候DBA就会很紧张了,下面是一些在实践中
- 今天因为做一个效果的时候需要CSS的定位来实现,于是我就根据自己原来对CSS的了解,用absolute和relative摆弄了好一阵子,总是
- 代码如下:'返回某年总共有多少天 Function DayOfYear(ByVal y) DayOfYear = DatePart(
- 方法一一般情况下,SQL数据库的收缩并不能很大程度上减小数据库大小,其主要作用是收缩日志大小,应当定期进行此操作以免数据库日志过大1、设置数