品牌创意企业推荐 推荐: 网站建设 上海网站建设 上海网页设计 
 
搜索 竞赛 产业 文案 论吧 论坛 酷站 矢量库 图片库 设计网址 作品集> 注册 - 登陆
首 页设计资讯大赛征集平面设计UI设计CG/动画工业设计建筑环境数码影像教程区设计访谈 精品欣赏会员作品集
>> 论坛发布优秀教程申请个人教程专区
推荐:经典素材资源
滚动新闻:[6-10]融于意,形于展!---52design作品集、设计师网上联展!
当前位置: 首页 >> 教程 >> HTML/CSS教程 >>正文
使用HTML+CSS编写灵活的Tab页
资讯/教程/作品在线投稿  - 进入素材基地 - 论坛讨论 - 查看更多相关内容
时 间:2007-8-22 17:15:05   作者:   来 源:52design.com   浏览:

最近在研究CSS,正好结合项目做了一个灵活的Tab页,使用纯HTML+CSS实现,正好总结一下。

首先看一下预览界面: 

使用HTML+CSS编写灵活的Tab页

下面开始讲述一下完成上述页面的步骤。

1. 构建HTML

构建HTML是整个过程最基础的部分。我们构建HTML比较关键的一个原则就是“还HTML标签其本来的含义”。所以在这里,我们应该合理分析一下期望做到的HTML的结构的情况,并加以分析,选择比较合适的HTML标签,而不是采用非标准的Table布局或者充斥着大量div和class的布局方式。事实上,现在存在着一种误区,就是凡事采用了DIV+CSS的方式进行页面编程的就是Web标准的,其实这是完全错误的观点,很容易就导致了“多div症”(divitus)或者“多类症”(classitis)。
回到正题,我们分析一下页面样式,可以将整个Tab页分成2个部分,分别是一级菜单和二级菜单,他们有类似的特点,并以横向方式排列。HTML标签中的无序列表就可以反映出这种逻辑关系。所以我们分别采用2个无序列表来表示一级菜单和二级菜单。代码如下:

<div class="navg">  
    <div id="attendance" class="mainNavg">  
        <ul>  
            <li id="attendanceNavg"><a href="#">考勤管理</a></li>  
            <li id="teachNavg"><a href="#">教学管理</a></li>  
            <li id="communicationNavg"><a href="#">家校互通</a></li>  
            <li id="systemNavg"><a href="#">系统管理</a></li>  
        </ul>  
    </div>     
    <div id="dailyAttendance" class="secondaryNavg">  
        <ul>  
            <li id="dailyAttendanceNavg"><a href="#">当天考勤</a></li>  
            <li id="leaveApproveNavg"><a href="#">请假审批</a></li>  
            <li id="attendanceStatisticsNavg"><a href="#">考勤统计</a></li>  
            <li id="attendanceCollectNavg"><a href="#">考勤汇总</a></li>  
        </ul>  
    </div>  
</div> 

其中,2个div将菜单级别划分开。其实在以后还会有其他的功效。此时,我们不妨View一下这张页面,我们可以惊喜的发现,这张页面就想Word文档一样,是可读的,这一点我们可以在整个过程做完以后再一次验证。

使用HTML+CSS编写灵活的Tab页

2. 构建基本CSS

先简单的让ul横向排列,这里面要注意元素float之后要注意清理

然后通过分别在LI 和 A 元素上应用背景来实现主菜单样式,这里有个比较重要的地方是A这个元素变成块级元素(display: block),这样可以便于我们下面做一些处理,也能使整个菜单应用到链接样式。
而其中的line-height,恰恰可以使A中的字纵向居中。text-align使得A中的字横向居中。 代码如下:

.navg .mainNavg UL {   
    margin: 0;   
    padding: 0;   
    list-style: none;   
}   
.navg .mainNavg UL LI {   
    float: left;       
    background-color: #E1E9F8;   
    background: url(../images/tab_right.gif) no-repeat right top;   
    margin: 10px 3px;   
    height: 25px;   
}
.navg .mainNavg UL LI A {   
    display: block;   
    height: 25px;   
    padding: 0 25px;   
    line-height: 24px;   
    background-color: #E1E9F8;   
    background: url(../images/tab_left.gif) no-repeat left top;   
    text-decoration: none;   
    float: left;   
    text-align:center;   
    color: #fff;   
    font-weight: bold;     
}

3. 使宽度自适应

我们在这里使用滑动门技术来做宽度自适应。下面简单介绍一下滑动门技术

简单来说,就是在LI上应用一幅大图像背景,并让这个背景居于右侧

使用HTML+CSS编写灵活的Tab页

然后在A上应用一个小图像背景,并让这个背景居于左侧,遮住大图像边缘

使用HTML+CSS编写灵活的Tab页

这样无论菜单文字内容长度怎么变,都不会破坏原来的结构了。

4. 当前菜单高亮显示

如果高亮当前页面,这个有很多种做法,最死板的是在每个页面上显式的定义类。
但是对于web项目来说,页面多数是动态的,所以这样不是最理想的方法。

我这里采用的方法是CSS选择器的灵活使用,代码如下:

#attendance #attendanceNavg,   
#teach #teachNavg,   
#communication #communicationNavg,   
#system #systemNavg {   
    background: url(../images/tab_right_on.gif) no-repeat right top;   
}   
#attendance #attendanceNavg A,   
#teach #teachNavg A,   
#communication #communicationNavg A,   
#system #systemNavg A {   
    background: url(../images/tab_left_on.gif) no-repeat left top;   
    color: #0000ff;   
}

在<div id="attendance" class="mainNavg">的代码中,我们可以使用不同的id作为选择器,由于CSS中的选择器id的优先级将大于class,所以只要根据id配合上li上面的id,就可以达到动态选择高亮选中的目的。

事实上,由于我们的页面都是动态的,所以id可以由后台生成,这样就可以通过id的不同组合非常精巧的实现了我们的需求。

5. 小技巧

最后可能还有一个问题你在想怎么实现的,就是高亮的tab如何把下面的横线遮掉的

很简单,图片上的小技巧。将高亮的图片高度设置为25px,而普通的图片设置为24px。然后通过padding,就可以将那根横线遮去了。

我们可以使用类似的方式,把二级菜单也做出来,这里就不详细叙述了。大家可以结合源码试一下。


本文链接:


52design素材资源库52design图片库52design酷站营

我爱设计网www.52design.com
(在线编辑:morion) 】【打印】【关闭】【设计论坛】【设计师作品集
免责声明:本站刊载此文不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。对本文有异议,请联络本站!
转载要求:文章作者及来源信息必需保留。转载之图片、文件,链接请不要盗链到本站地址,且不准打上各自站点的水印。

经典设计欣赏 设计关键字:VI 新锐 包装 装帧 海报 地产广告 画册 名片 标志 软件界面 ICO 网页
富有创意的运动鞋广告
富有创意的运动鞋
杂志computer arts06年3月优秀作品欣赏
美国Amir H.平面设计作品
美国Amir H
老外图案设计欣赏
老外图案设计欣赏
日本经典视觉平面作品欣赏
日本经典视觉平面
New Faces 2006优秀作品欣赏
New Face
韩国站点 素材资源 艺术摄影 游戏娱乐 影视网站 建筑家居 FLASH站 旅游购物 明星网站
设计门户 优秀企业 时尚品牌 象素站点 数码通信 设计公司 汽车网站 国外优秀 儿童网站
个性展示 网站教学 工 作 室 学校教育 卡通漫画 文化艺术 体育运动 美容健身 食品饮料
当日文章推荐 查看更多相关内容
Dreamweaver| 用DW设计限时自动关闭的网页 [8-22]Dreamweaver| DW定制网页过渡功能 [8-22]
网站推广| 网站推广公司:仰仗搜索引擎生存 [8-22]理论文献| 我看中国的动画行业 [8-22]
Photoshop| PS实例:欧式风格的制作 [8-22]Photoshop| Photoshop简单水晶按钮制作 [8-22]
平面设计| 美国Amir H.平面设计作品 [8-22]平面设计| 日本经典视觉平面作品欣赏 [8-22]
平面设计| New Faces 2006优秀作品 [8-22]平面设计| Gee Ming Chieh 平面设 [8-22]
平面设计| 让你浮想连篇 暧昧却很有创意广告 [8-22]卡通动漫| TONY大神《光明之风+光明之泪》 [8-22]
会员作品集推荐 查看更多推荐会员作品
平面作品 | 插画作品 | 网页作品 | 包装作品 | 软件UI | 室内设计 | 数码摄影作品 | 建筑环境 | 工业设计 | 其他
降落烟仔卡卡走-迷Divinedoors互联通
GUI报纸广告LogoIDEAL玩具汇森玩具

数据载入中...
视觉焦点
优秀作品在线投稿
美国Amir H.平面设计作品
美国Amir
日本经典视觉平面作品欣赏
日本经典视觉
New Faces 2006优秀作品欣赏
New Fa
Gee Ming Chieh 平面设计
Gee Mi

站点新入
Photoshop打造纸质风格的最终幻想人物
Photos
Photoshop教程:绘制圣诞玻璃音乐盒
Photos
展区
韩国站点 素材资源 艺术摄影 游戏娱乐 影视网站 建筑家居 FLASH站 旅游购物 明星网站 个性展示 网站教学 工 作 室 学校教育
设计门户 优秀企业 时尚品牌 象素站点 数码通信 设计公司 汽车网站 国外优秀 儿童网站 文化艺术 体育运动 美容健身 食品饮料
网站名称:theodoru
网站地址:http://www.theodoru.com/
加入时间:2008-11-27 15:43:55
网站名称:bohrcafe
网站地址:http://www.bohrcafe.com/
加入时间:2008-11-27 15:43:20
网站名称:e-stradivarius
网站地址:http://www.e-stradivarius.com/
加入时间:2008-11-27 15:42:45
网站名称:toyotasw4
网站地址:http://www.toyotasw4.com.br/
加入时间:2008-11-27 15:39:48
网站名称:travislum
网站地址:http://www.travislum.com/
加入时间:2008-11-27 15:39:09
网站名称:nokia-li
网站地址:http://www.nokia-li.com.cn/ranking/
加入时间:2008-11-27 15:36:28
关于本站 | 联系方式 | 商业服务 | 合作伙伴 | 站点地图 | 免责声明 | 版权声明 | 在线投稿