CSS制作圆角导航的另一思路

2016-02-19 21:21 6 1 收藏

最近很多朋友喜欢上设计,但是大家却不知道如何去做,别担心有图老师给你解答,史上最全最棒的详细解说让你一看就懂。

【 tulaoshi.com - Web开发 】

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

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

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

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/)

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

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/)

!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″ /
titleNav/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就跟圆角导航的一样。

来源:http://www.tulaoshi.com/n/20160219/1625965.html

延伸阅读
标签: Web开发
我们在浏览很多网站的时候会看到有的网站当你的鼠标移动到导航栏的文字上的时候会感觉字在动,或则字体的颜色会变,或则 有上划线,看看我的博客上导航栏的效果你的明白了,今天三少就来告诉大家这是怎么样实现的。 其实这个很简单,它实际上是用CSS来实现的,请跟着我的步骤做,Let' Go! 1.进入你的个人门户管理,选...
标签: Web开发
我们接下来会创建一个xHTML页面,内含两个分别被ID为fixedBox与FlowBox的DIV所包含的两个内容区域,分别为固定宽度与不固定宽度的两个DIV,现在我们来为这两个DIV加上圆角。 我们所使用的理论是:在为元素添加背景时,背景图片总是显示在背景色之上;要创建单色的圆角矩形框,我们可以先创建一个正常的矩形框,然后,使用与背景色一致...
标签: Web开发
!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" lang="gb2312" head meta http-equiv="Content-Type" content="text/HTML; charset=gb2312" / titlediv+CSS圆角矩形/title style type="text/CSS" body{padding: 20...
标签: Web开发
一张图片就能实现圆角?是什么样的图片?怎样实现? 其实这张图片是一个小圆圈,如下面的例子将要使用的图片为 10 * 10 大小的图片: ,太小了是吧,不过已经够了。 基本思路 准备四个小容器,分别放小圆圈图片的左上、右上、左下、右下四个部分,然后再分别定位到父容器的四个角上。 图片示意: 代码实现 XHTML代码: div ...
标签: Web开发
自己写的个导航,感觉还不错...惟一的不足就是hack比较多,如果有简洁的方式实现,请留言告诉我...呵呵... 样式部分: #headerMenu {     width:560px;     margin:30px auto; } .menu {     font-size:14px;     line-height:18px;    &n...

经验教程

774

收藏

79
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部