进阶:彻底弄懂CSS盒子模式之二

css

作者:唐国辉         
实现原理动画演示:http://www.alixixi.com/UploadPic/2007-7/200777204837702.swf

  自本人教程《彻底弄懂CSS盒子模式(DIV布局快速入门)》发表以来,一直获得各位网友的好评与支持,今天应各位网友的要求,也为了答谢各位网友的支持,本人将推出续篇教程,以加深各位网友对CSS盒子模式的理解。此教程面向读者还是DIV排版入门者,如果你是高手,那就不要浪费自己时间了。

  本人这次将讲解一个纵向CSS导航栏实例的制作,在讲解过程中将会延用之前发表教程所讲到的“盒子”概念,如果你没有看过本人之前的那篇教程,又或者你还不理解什么是“盒子”这一概念,请先通过下面的两个链接阅读本人之前发表的教程,看完之后再回来看此教程,如有不便敬请原谅。

  用CSS做导航栏也是轻而易举的事情,在本人之前发表的教程中其实也有一个简单的横向导航栏制作,那时只给出了样式代码并没有作太多的解释,这次要做一个相对复杂点的导航栏,为了加深大家对CSS盒子模式的理解,特别选做一个有多层DIV嵌套实现的导航栏。

先看实现原理动画演示:

运行代码框

<!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=gb2312" /><title>彻底弄懂CSS盒子模式(导航栏实例详解)</title><style type="text/css"><!--* { margin: 0px; padding: 0px; }.nav { background: url(/UploadPic/2007-7/200777204838915.jpg) repeat-y; width: 200px; overflow: hidden;}.lanList { background: url(/UploadPic/2007-7/200777204846635.gif) no-repeat left center ; height: 50px; width: 190px;}.lanBoxIn { float: right; height: 20px; width: 170px; margin: 15px 0px 0px 0px;}.lanBoxIn a { background: url(/UploadPic/2007-7/200777204846975.gif) no-repeat left center; text-decoration: none; height: 20px; width: 155px; display: block; float: right; padding: 0px 0px 0px 5px; font-weight: bold; font-size: 9pt; line-height: 20px; color: #663300;}.lanBoxIn a:hover { background-image: url(/UploadPic/2007-7/200777204846927.gif); color: #FFFFFF;}.lanBoxIn span { float: left; height: 20px; width: 10px; background-color: #ff9900;}--></style></head><body><div class="nav"><div class="lanList"> <div class="lanBoxIn"> <span></span><a href="#">彻底弄懂CSS盒子模式1</a> </div></div><div class="lanList"> <div class="lanBoxIn"> <span></span><a href="#">彻底弄懂CSS盒子模式2</a> </div></div><div class="lanList"> <div class="lanBoxIn"> <span></span><a href="#">彻底弄懂CSS盒子模式3</a> </div></div><div class="lanList"> <div class="lanBoxIn"> <span></span><a href="#">彻底弄懂CSS盒子模式4</a> </div></div><div class="lanList"> <div class="lanBoxIn"> <span></span><a href="#">彻底弄懂CSS盒子模式5</a> </div></div></div></body></html>

    [Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]

现在再看结果图:

这个导航栏中的链接用到了背景图片的切换效果,鼠标移到链接上导航栏背景图片和文字颜色都会跟着改变,整个导航用到下列4幅图片素材:

即链接不同状态的两张背景图片,每条导航左边的“勾月”图形,最外边大盒子1像素高的背景图片。

  看了动画演示和结果图,也了解了用到那些素材,现在就请你带着一股好奇和我一起来完成这个导航栏吧,当做完这个导航栏之后你会发现原来DIV排版那么简单。愿你更有信心学好DIV排版!

  先来分析一下这个导航栏要用到多少个盒子:最外边一个大盒子(nav),这个盒子与1像素高的背景图片等宽,里面又有五个小盒子(lanList)分别装着每一个导航栏,这个盒子与“勾月”图形等高,导航栏这个盒子里面又装着一个稍小的盒子(lanBoxIn),这个盒子又装着一个黄色的修饰盒子 (span)和一个有文字的链接盒子(a)。

网页结构代码:

<div class="nav">

<div class="lanList">
    <div class="lanBoxIn">
        <span></span><a href="#">彻底弄懂CSS盒子模式1</a>
    </div>
</div>

<div class="lanList">
    <div class="lanBoxIn">
        <span></span><a href="#">彻底弄懂CSS盒子模式2</a>
    </div>
</div>

<div class="lanList">
    <div class="lanBoxIn">
        <span></span><a href="#">彻底弄懂CSS盒子模式3</a>
    </div>
</div>

<div class="lanList">
    <div class="lanBoxIn">
        <span></span><a href="#">彻底弄懂CSS盒子模式4</a>
    </div>
</div>

<div class="lanList">
    <div class="lanBoxIn">
        <span></span><a href="#">彻底弄懂CSS盒子模式5</a>
    </div>
</div>

</div>

1.现在正式开始做,做之前初始化一下各签标的边界和填充,这里用样式:

* {
    margin: 0px;
    padding: 0px;
    }

2.组装最外边的大盒子nav,宽200px,高为自动auto或者干脆不要,背景图片为bj.jpg,背景纵向重复,用到样式:

.nav {
    background: url(bj.jpg) repeat-y;
    width: 200px;
    overflow: hidden;
}

3.组装每条导航的盒子lanList,这个盒子与“勾月”图形等高,并把“勾月”图形以背景形式放在这个盒子的左边,并让这个盒子靠左边对齐(因为这个盒子的宽度比外边的大盒子小,如果相等则可以不用考虑对齐方式),这里用到样式float的属性,本人没有写入样式中则取其默认值,样式代码如下:

.lanList {
    background: url(lan.gif) no-repeat left center ;
    height: 50px;
    width: 190px;
}

4.组装比每条导航栏稍小的内部盒子lanBoxIn,这个盒子让它右对齐,并与其父级盒子lanList内容边界上边形成15px边界,目的是让内容块看起来居中(当然你也可以用到下边界来实现,达到目的就可以),样式代码如下:

.lanBoxIn {
    float: right;
    height: 20px;
    width: 170px;
    margin: 15px 0px 0px 0px;
}

5.组装黄色修饰块盒子span,这个盒子与父级盒子lanBoxIn等高,并在lanBoxIn盒子内左对齐,样式代码如下:

.lanBoxIn span {
    float: left;
    height: 20px;
    width: 10px;
    background-color: #ff9900;
}

6.组装链接盒子a,这里用到样式: display: block;让链接以块状方式呈现,并为链接安排背景图片,为了安全起见设置背景不重复,垂直居中(如果浏览器出错解释错误,而你的背景又不是纯色的,那么盒子过大导致的背景重复将会影响网页美观),链接文字样式去除下划线,样式如下:

.lanBoxIn a {
    background: url(lanbj2.gif) no-repeat left center;
    text-decoration: none;
    height: 20px;
    width: 155px;
    display: block;
    float: right;
    padding: 0px 0px 0px 5px;
    font-weight: bold;
    font-size: 9pt;
    line-height: 20px;
    color: #663300;
}

7.最后简单为鼠标移到链接上时,链接风格的改为指定一个样式:

.lanBoxIn a:hover {
    background-image: url(lanbj3.gif);
    color: #FFFFFF;
}

  至此完成样式代码编写,下面给出内容部分的结构代码,当然我们并不是先把样式代码都写好了再写结构代码的,一般是由外到里,一边写样式一边组织内容结构的,本人只是为了讲解方便而先全部给出样式代码。

像这种列表式导航栏用无序列表(ul/li)来实现更科学,结构代码如下:

<ul class="nav">

<li class="lanList">
    <div class="lanBoxIn">
        <span></span><a href="#">彻底弄懂CSS盒子模式1</a>
    </div>
</li>

<li class="lanList">
    <div class="lanBoxIn">
        <span></span><a href="#">彻底弄懂CSS盒子模式2</a>
    </div>
</li>

<li class="lanList">
    <div class="lanBoxIn">
        <span></span><a href="#">彻底弄懂CSS盒子模式3</a>
    </div>
</li>

<li class="lanList">
    <div class="lanBoxIn">
        <span></span><a href="#">彻底弄懂CSS盒子模式4</a>
    </div>
</li>

<li class="lanList">
    <div class="lanBoxIn">
        <span></span><a href="#">彻底弄懂CSS盒子模式5</a>
    </div>
</li>

</ul>

源文件打包下载  xhtml.rar

时间: 2024-11-02 14:22:43

进阶:彻底弄懂CSS盒子模式之二的相关文章

彻底弄懂CSS盒子模式系列教程集合_经验交流

blueidea终于可以出点让人惊呀的东西了,一直对clear和position不太理解,没想到这次的系列教程全给提及到了,不错,赞一下. 彻底弄懂CSS盒子模式之一彻底弄懂CSS盒子模式之二彻底弄懂CSS盒子模式之三彻底弄懂CSS盒子模式之四彻底弄懂CSS盒子模式之五

学习网页技术:彻底弄懂CSS盒子模式之五

css|网页 1.彻底弄懂CSS盒子模式一(DIV排版快速入门)2.彻底弄懂CSS盒子模式二(导航栏实例)3.彻底弄懂CSS盒子模式三(浮动的表演和清除的自述)4.彻底弄懂CSS盒子模式四(绝对定位和相对定位) 在本人上一篇教程<彻底弄懂CSS盒子模式四(绝对定位和相对定位)>中最后有演示一个综合导航实例,那时因为时间关系,同时本人也觉得有必要将这实例分出来单独讲一下,所以没有把实例讲解教程写到上一篇教程中.这个教程可以作为CSS定位学习的强化练习,当然教程我也不只是单一的讲解做的步骤,还会和

网页制作学习:彻底弄懂CSS盒子模式之四

css|网页 彻底弄懂CSS盒子模式四(绝对定位和相对定位) 1.彻底弄懂CSS盒子模式一(DIV排版快速入门)2.彻底弄懂CSS盒子模式二(导航栏实例)3.彻底弄懂CSS盒子模式三(浮动的表演和清除的自述) 前言 在用CSS控制排版过程中,定位一直被人认为是一个难点,这主要是表现为很多网友在没有深入理解清楚定位的原理时,排出来的杂乱网页常让他们不知所措,而另一边一些高手则常常借助定位的强大功能做出些很酷的效果来,比如CSS相册等等,因此自己杂乱的网页与高手完美的设计形成鲜明对比,这在一定程度上

彻底弄懂CSS盒子模式之三

css 彻底弄懂CSS盒子模式三(浮动的表演和清除的自述) 1.彻底弄懂CSS盒子模式一(DIV排版快速入门)2.彻底弄懂CSS盒子模式二(导航栏实例)3.彻底弄懂CSS盒子模式四(绝对定位和相对定位) 一.下面请看float的精彩表演,有请.大家好,我是float,欢迎访问CSS家族,在CSS家族中,在当今CSS排版流行的年代,我可扮演着重要的角色哦.因为我的工作对网页设计人员很有用,就像之前align帮助你们定位网页元素一样重要,但是我的功能似乎比align强多了.接下来我将现场给你演示我的

彻底弄懂CSS盒子模式(DIV布局快速入门)

css|快速入门 如果你想尝试一下不用表格来排版网页,而是用CSS来排版你的网页,也就是常听的用DIV来编排你的网页结构,又或者说你想学习网页标准设计,再或者说你的上司要你改变传统的表格排版方式,提高企业竞争力,那么你一定要接触到的一个知识点就是CSS的盒子模式,这就是DIV排版的核心所在,传统的表格排版是通过大小不一的表格和表格嵌套来定位排版网页内容,改用CSS排版后,就是通过由CSS定义的大小不一的盒子和盒子嵌套来编排网页.因为用这种方式排版的网页代码简洁,更新方便,能兼容更多的浏览器,比如

推荐彻底弄懂CSS盒子模式(DIV布局快速入门)第1/3页_经验交流

作者:唐国辉 实例网页网址:http://www.hsptc.com/css2.html前言       如果你想尝试一下不用表格来排版网页,而是用CSS来排版你的网页,也就是常听的用DIV来编排你的网页结构,又或者说你想学习网页标准设计,再或者说你的上司要你改变传统的表格排版方式,提高企业竞争力,那么你一定要接触到的一个知识点就是CSS的盒子模式,这就是DIV排版的核心所在,传统的表格排版是通过大小不一的表格和表格嵌套来定位排版网页内容,改用CSS排版后,就是通过由CSS定义的大小不一的盒子和

CSS盒子模式详解五

在本人上一篇教程<彻底弄懂CSS盒子模式四(绝对定位和相对定位)>中最后有演示一个综合导航实例,那时因为时间关系,同时本人也觉得有必要将这实例分出来单独讲一下,所以没有把实例讲解教程写到上一篇教程中.这个教程可以作为CSS定位学习的强化练习,当然教程我也不只是单一的讲解做的步骤,还会和大家一起来分析一下设计思路,同时分享本人在做的过程中发现的一些问题供大家防范参考.为了兼顾一下没有来得及看我上一篇教程的网友,我再次给出代码运行框,大家可以先运行看看效果,不过建议最好先看一下本人上一篇教程,除非

CSS盒子模式详解二

自本人教程<CSS盒子模式详解>发表以来,一直获得各位网友的好评与支持,今天应各位网友的要求,也为了答谢各位网友的支持,本人将推出续篇教程,以加深各位网友对CSS盒子模式的理解.此教程面向读者还是DIV排版入门者,如果你是高手,那就不要浪费自己时间了. 本人这次将讲解一个纵向CSS导航栏实例的制作,在讲解过程中将会延用之前发表教程所讲到的"盒子"概念,如果你没有看过本人之前的那篇教程,又或者你还不理解什么是"盒子"这一概念,请先通过下面的两个链接阅读本人

CSS盒子模式详解一

前言 如果你想尝试一下不用表格来排版网页,而是用CSS来排版你的网页,也就是常听的用DIV来编排你的网页结构,又或者说你想学习网页标准设计,再或者说你的上司要你改变传统的表格排版方式,提高企业竞争力,那么你一定要接触到的一个知识点就是CSS的盒子模式,这就是DIV排版的核心所在,传统的表格排版是通过大小不一的表格和表格嵌套来定位排版网页内容,改用CSS排版后,就是通过由CSS定义的大小不一的盒子和盒子嵌套来编排网页.因为用这种方式排版的网页代码简洁,更新方便,能兼容更多的浏览器,比如PDA设备也