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.使用Management Studio Express,用“Windows身份验证”登录,选中SQL服务器名,右击鼠标选择属性,在服务器
- 为什么需要使用301重定向:1. 保留搜索引擎的排名: 301 重定向是最有效的方法,不会影响到搜索引擎对页面的排名。2. 保留访客和流量:
- 最近的项目中大量涉及数据的预处理工作,对于ndarray的使用非常频繁。其中ndarray如何进行数值筛选,总结了几种方法。1.按某些固定值
- JSON简介JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它基于ECMAScript的一个子集
- 看代码吧~import torchimport numpy as npfrom torchvision.transforms import
- PDOStatement::getColumnMetaPDOStatement::getColumnMeta — 返回结果集中一列的元数据(
- 前言当你逐渐了解tushare之后,你会发现我们要进行数据分析只靠tushare是不够的,接下来我将介绍如何利用第三方软件将tushare获
- 1. 常用模块# 连接数据库connect()函数创建一个新的数据库连接对话并返回一个新的连接实例对象PG_CONF_123 = {
- 用Python实现出来的机器学习算法都是什么样子呢? 前两期线性回归及逻辑回归项目已发布(见文末链接),今天来讲讲BP神经网络。BP神经网络
- 前言python下的setuptools带有一个easy_install的工具,在安装python的每三方模块、工具时很有用,也很方便。安装
- 有时候使用python从网站上爬数据的时候,如果数据里包含中文,有时候显示的却是如下所示...\xe4\xba\xba\xef\xbc\x8
- 协程的特点1.该任务的业务代码主动要求切换,即主动让出执行权限2.发生了IO,导致执行阻塞(使用channel让协程阻塞)与线程本质的不同C
- 与 Python 一样,Go 语言也有空白标识符。1.什么是空白标识符空白标识符是未使用的值的占位符。它由下划线(_)表示。由于空白标识符没
- 本人是一名python初学者,刚刚看到一道有趣的python问题,“用python如何在编译器中打印出菱形图案?”因此决定尝试一下,代码不多
- 一、概率知识基础1.概率概率就是某件事情发生的可能性。2.联合概率包含多个条件,并且所有条件同时成立的概率,记作:P(A, B) = P(A
- 使用thinkphp官方的WeChat包,使用不同模式可以成功,但是安全模式就是不行,现将分析解决结果做下记录。分析问题: &nb
- [LeetCode] 180.Consecutive Numbers 连续的数字Write a SQL query to find all
- 前言JSON是一种轻量级的数据交换格式,采用了独立于语言的文本格式,类似XML,但是比XML简单,易读并且易编写。对机器来说易于解析和生成,
- 一、环境搭建1、安装python+pycharm软件 。python安装网址官网:https://www.python.org/about/
- 前言本文中所有的代码使用 JavaScript 编写,但你也可以用其他兼容 JSR 223 的脚本语言。这些例子可作为脚本文件也可以在交互式