CSS制作标签卡TAB效果

2016-02-19 18:29 15 1 收藏

今天图老师小编要向大家分享个CSS制作标签卡TAB效果教程,过程简单易学,相信聪明的你一定能轻松get!

【 tulaoshi.com - Web开发 】

 amazon.com这种方式得导航引起了相当多人的效仿。那么,它是如何做到的呢?有过网页设计经验的人应该不难明白,如果不知道细节的话,通过察看源代码就能知道,它实际上是通过在表格中插入事先制作好的作为标签卡的图片来制作的,标签卡的效果通过颜色来控制,比如上图中的“YOUR STORE”这张图片和底下子栏目的颜色一致,背景都为深蓝色,这样看上就向一张卡片了。

不过,现在网页设计的趋势是XHTML+CSS来完成。那么,如果不用图片加表格的方法,有没有办法仅仅利用CSS来制作呢?有的,可以通过项目列表的CSS设定来做到。

这张图,就是利用这种方法来制作的。

下面,我们就分别来学习CSS的标签卡制作。

利用列表元素制作标签卡

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

通常情况下,项目列表的排列方式是垂直的,并在前头带有特定的项目符号,如下:

项目列表一
项目列表二
项目列表三
项目列表四
它所对应的HTML代码是这个样子:

ul
li项目列表一/li
li项目列表二/li
li项目列表三/li
li项目列表四/li
/ul  

那是否你曾想到过,项目列表也可以不垂直排列,而是水平分布呢?在HTML中无论如何是做不到这点的。可是CSS却提供了这种方法。

首先,我们把项目列表放入到div标记中,如下:

div id="horizonlist"

ul
li项目列表一/li
li项目列表二/li
li项目列表三/li
li项目列表四/li
/ul

/div

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

然后,我们为这个id为horizonlist的Div设定如下样式:

#horizonlist {//*设定div的Box属性*//
border: 1px solid #000;
margin: 2em;
width: 80%;
padding: 5px;
font-family: Verdana, sans-serif;
}

#horizonlist ul, #horizonlist li {//*设定限制于horizonlist的div内的ul和li的属性*//
display: inline;
margin: 0;
padding: 0;
color: #339;
font-weight: bold;
}

此样式作用于所给项目列表的结果如下:

项目列表一
项目列表二
项目列表三
项目列表四
可以看到,此时的项目列表成了水平放置,而且列表前的符号自动消失。之所以这样,关键在于属性display的设置值inline的作用。display用来改变元素的显示值,可以将元素类型线上,块和清单项目相互变换,其中取值inline的作用是“删除元素前后的分行符,使其并入其它元素流中”。在这里,inline取消了每个列表项目后的换行,而成为一行显示。

顺着这个思路下去,如果我们给每个列表项目设定Box属性,那不就有了类似标签卡的效果出来了么:

项目列表一
项目列表二
项目列表三
项目列表四
我们来看看这个例子的代码:

div id="tabdemo"
ul
li项目列表一/li
li项目列表二/li
li class="selected"项目列表三/li
li项目列表四/li
/ul
/div

和上面的例子不同,这里的项目列表三多了类名“selected”,用来表示当前被选中的标签卡。

相应的CSS属性设定如下:

#tabdemo ul li {
margin-left: 0;
margin-bottom: 0;
padding: 2px 15px 5px;
border: 1px solid #000;
list-style: none;//*不显示列表符号*//
display: inline;//*取消项目之间的分行*//
background-color: #ffc;
}

#tabdemo ul li.selected {//*设定被选中的列表的效果*//
border-bottom: 1px solid #fff;
background-color: #fff;
list-style: none;
display: inline;
}

如果你希望每个标签卡之间有一定的距离,可以修改#tabdemo ul li此设定中的margin-left属性值,比如改为2,就可以看到类似早先给出的那张蓝色标签卡的样子。

接下来我们来进一步修饰上面这个标签卡,先来看效果果。

标签卡一
标签卡二
标签卡三
标签卡四

可以看到,每个标签卡之间不再紧贴一起,底下出现了一条连续的横线,当鼠标移动到每个标签卡的时候,出现了浮动的效果。

一起来分析一下代码:

div id="container"

ul id="beautytab"
lia href=../../"#" class="selectedtab"标签卡一/a/li
lia href=../../"#"标签卡二/a/li
lia href=../../"#"标签卡三/a/li
lia href=../../"#"标签卡四/a/li
/ul

/div

这个标签卡放在id为container的块div中。列表的i


CSS教程是:CSS制作标签卡TAB效果。d为beautytab,其中的列表项目标签卡一设定了一个类“selectedtab”,表示当前被选的标签卡类。

对应的CSS设定如下:

#container
{//*设定包含列表的div的Box属性*//
width: 500px;
padding: 30px;
border: 1px solid #ccc;
background: #fff;
}

#beautytab
{//*设定项目列表Ul元素的属性,其中background用来设定连贯于各个列表项目下的横线,否则它们会彼此分离,用了一张事先准备好的图片,让它放置在底部,水平重复*//
height: 20px;
margin: 0;
padding-left: 10px;
background: url(''bottom.gif'') repeat-x bottom;
}

#beautytab li
{//*设定各个列表项目的属性,display属性设定取消项目间的分行,list-style-type设定取消列表项目前的符号*//
margin: 0;
padding: 0;
display: inline;
list-style-type: none;
}

#beautytab a:link, #beautytab a:visited
{//*设定标签卡中超链接的文字的属性*//
float: left;
background: #f3f3f3;
font-size: 12px;
line-height: 14px;
font-weight: bold;
padding: 2px 10px 2px 10px;
margin-right: 4px;
border: 1px solid #ccc;
text-decoration: none;
color: #666;
}

#beautytab a:link.selectedtab, #beautytab a:visited.selectedtab
{//*设定当前被选中的标签卡中超链接的属性*//
border-bottom: 1px solid #fff;
background: #fff;
color: #000;
}

#beautytab a:hover
{//*设定超链接鼠标浮动效果*//
background: #fff;

如果手头上有漂亮的修饰图片,我们还可以进一步制作出类似下图的漂亮雅致的标签卡来。 

至于如何制作,用兴趣的人可以自己动手做做看。

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

延伸阅读
标签: Web开发
一段文本或一张图片,它的周围有一圈光晕,这圈光晕每一秒钟闪烁一次,而当鼠标移到上面时,立即停止闪烁,当鼠标移开时又继续闪烁。这种效果用于那些需要特别引起别人注意的内容上(如:警示、报告新增内容等),能起到较好的效果。 上面这个示例就能实现上面所的效果,由于这里是抓取的一张图片,不能看到动态效果,只要按下面介绍...
标签: Web开发
原文:http://www.planabc.net/2008/07/24/legend_width/ 我们在做表单的时候经常会使用到这样的结构: fieldset     legend哪些浏览器legend标签设定的宽度有效/legend     input type="checkbox" value="ie6" name="width" id="ie6" checked="checked"...
标签: Web开发
CSS网页布局中,tbody标签与thead和tfoot标签如何使用呢? thead 标签用于HTML表格的表头 表格的头部thead,可以使用单独的样式定义表头,并且在打印时可以在分页的上部打印表头. tfoot 标签表示HTML表脚 表格的表脚tfoot,可以使用单独的样式定义表脚,并且在打印时可以在分页的下部打印表脚. tbody 标签表...
标签: Web开发
CSS高级布局已逐渐流行,但面对所谓DIV+CSS布局的叫法让人更为担心,不要让DIV成为Table的替代品,多层嵌套的DIV会严重影响代码的可阅读性,活用HTML为我们提供的标签吧。 什么时候应该用DIV? 虽然在这方面没有什么硬性的规定,但个人认为DIV更适用于大体框架的定位.例如我们要定义一块头部的区域,一般会这样定义一个DIV: div id="header"这...
标签: Web开发
Float(浮动)概念也许是CSS中最让人迷惑的一个概念吧。Float经常被错误理解,而且因为将上下文元素全部浮动导致的可读性、可用性问题备受责难。然而,这些问题的根源并不在于理论本身,而是开发人员以及浏览器对理论的解读造成的。 如果你认真的去读一下浮动概念,你会发现并不像所见的那样复杂。大多数问题都是由于老版本的IE带来的(我只...

经验教程

59

收藏

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