利用CSS3制作漂亮TAB选项卡方法介绍

这个CSS3 Tab样式已经写出来很久了,一直没有时间把它分享出来,也许网上还有其他很多这样子的代码,但没有一种是用到我说的:checked来做的,不管如何,多掌握一种方式对你也是有帮助的。

效果就如博客之前写过的一个Tab一样:有最新文章、热门文章和随机文章。

第一种::checked

首先像平常写HTML和CSS一样,不过要使用input的radio来做为点击后选择的内容。通过input:checked来隐藏和显示需要对应的内容。

HTML代码如下:

 代码如下 复制代码
<div class="widget widget-tab">
<input type="radio" name="widget-tab" id="new" checked="checked"/>
<input type="radio" name="widget-tab" id="hot"/>
<input type="radio" name="widget-tab" id="random"/>
<div class="widget-title inline-block">
<ul>
<li class="new">
<label for="new">最新博文</label>
</li>
<li class="hot">
<label for="hot">热评博文</label>
</li>
<li class="random">
<label for="random">随机博文</label>
</li>
</ul>
</div>
<div class="widget-box">
<ul class="new-list">
<li>……</li>
</ul>
<ul class="hot-list">
<li>……</li>
</ul>
<ul class="random-list">
<li>……</li>
</ul>
</div>
</div>

注意点:有几个标签页,就需要对应添加几个input,同时每个input的name必须设置为一致,同时这些input必须放在最前面,通过选择后来使用CSS3的同级元素链接符来改变样式。而Tab里面的“最新博文、热评博文、随机博文”都要用label包围起来,配上相对应的for.

CSS代码如下:

 代码如下 复制代码

.widget-tab input{display:none}
.widget-tab .widget-box ul{display:none}
#new:checked ~ .widget-title .new,#hot:checked ~ .widget-title .hot,#random:checked ~ .widget-title .random{background:#F7F7F7}
#new:checked ~ .widget-box .new-list,#hot:checked ~ .widget-box .hot-list,#random:checked ~ .widget-box .random-list{display:block}

第二种::target

前面说过CSS3的动画制作方式有两种分别是:target和:checked一样,这个tab同样可以用:target来实现,不过实现起来比用:checked相比,体验差了很多,因为它点击了锚点,从而让链接也发生了跳转,给人一种很突然的感觉。思路是通过点击:target时令对应的z-index变大,重复覆盖在上一层。

HTML代码

 代码如下 复制代码

<div class="tab-wrap">
<div class="tab-title" id="tabTitle">
<ul class="clearfix">
<li><a href="#tab1">最新文章</a></li>
<li><a href="#tab2">热门文章</a></li>
<li><a href="#tab3">随机文章</a></li>
</ul>
</div>
<div class="tab-content">
<ul id="tab1">
<li>……</li>
</ul>
<ul id="tab2">
<li>……</li>
</ul>
<ul id="tab3">
<li>……</li>
</ul>
</div>
</div>

CSS代码

 代码如下 复制代码
.tab-content{position: relative; min-height:200px; border:1px solid #ddd; margin-top:-1px;}
.tab-content ul{position: absolute; min-height: 100px; left:0; top:1px; padding:10px; background: #fff;}
#tab1:target, #tab2:target, #tab3:target{z-index: 1;}

注意点:如果要实现点击时标题的active状态发生变化,则要将标题放在内容的后面,显示很不符合HTML的思路。所以个人推荐使用:checked来使用,不但简单,符合语义,而且不需要考虑CSS定位引起的问题。在CSS ticks上找到的这篇CSS3 Tab里面都是讲用:target来做的方法,不过本人不推荐用这种方法。

浏览器兼容情况

不支持IE8及其以下浏览器

Chrome、Firefox、360均可以使用

时间: 2024-09-23 00:54:41

利用CSS3制作漂亮TAB选项卡方法介绍的相关文章

纯CSS3实现的Tab选项卡三个实例分享

实例一: 下面我们一起看看用纯CSS来制作一个选项卡的方法.使用纯CSS3来制作Tab的好处除了不需要使用jQuery外,还支持添加一些细微的CSS3交互,使Tab展示效果不错. 代码 这里主要使用表单的单选按钮来实现这个TAB显示和隐藏,首页tab里的内容默认隐藏,如果单选按钮为选中状态(checked)就显示内容.具体请看下面代码. 关于兼容性,因为是用CSS3来制作的,所以如果不支持CSS3的浏览将会出现不兼容的情况. HTML代码 <ul class="tabs">

利用滤镜制作漂亮的云彩蝴蝶

利用滤镜制作漂亮的云彩蝴蝶 云彩蝴蝶制作方法比较简单.先选择好蝴蝶及背景素材后,把蝴蝶扣出来,适当高斯模糊处理,然后用云彩滤镜做出云彩纹理,再适当改变图层混合模式,即可做出想要的效果. 最终效果 1.首先新建一个文档,导入云彩背景和蝴蝶图片.(素材可以自己去搜些,网上很好找)好了,现在把蝴蝶外形扣出.如果蝴蝶图片是彩色的,CTRL+SHIFT+U把图片该为黑白图片. <点小图查看大图> 2.现在选择蝴蝶所在的图层,CTIL+J,把蝴蝶层复制1份. 3.任意选择1个蝴蝶图层,点击图层前面的眼睛标

Photoshop利用滤镜制作漂亮绚丽烟花教程

给各位photoshop软件的使用者们来详细的解析分享一下利用滤镜制作漂亮绚丽烟花的教程. 教程分享: 1.打开PS软件,按Ctrl + N 新建文档,宽度,高度都设置为1000像素,分辨率为72.也可以新建自己所需大小的文档.   2.选择渐变工具,在渐变设置面板中选择一款"色谱"渐变,如图2;这是PS自带的渐变,如果找不到可以按图3的方法复位一下,然后选择"追加".       3.渐变选择好以后,在属性栏选择"线性渐变",不透明度:100%

Photoshop利用滤镜制作漂亮的大气泡效果

  ps教程         Photoshop利用滤镜制作漂亮的大气泡效果          效果图是由一个简单的光晕经过不断的复制,变形,调色,叠加得到;后期再调整整体颜色,增加对比,局部增加一些细节,就可以得到想要的效果. 最终效果 1.先来制作光斑,新建一个1024 * 1024像素的文档,然后把背景填充黑色. 2.执行:滤镜 > 渲染 > 镜头光晕,把光晕移到靠中间位置,确定后效果如图. 3.按Ctrl + J 把背景图层复制一层,如下图. 4.执行:滤镜 > 扭曲 >

制作签名图片-利用ps制作漂亮签名档图片教程

  打开美图秀秀,跟我们一起学习制作粉色可爱签名图的步骤吧.     我们要重新扣下图噢.   然后我们导入电脑中的花纹底图.   然后调整下前景的设置.   哈哈,差不多就ok了.        制作签名图片-利用ps制作漂亮签名档图片教程 

css3 文字效果: 如何利用CSS3制作3D文字效果

下面这篇教程是教你如何用CSS3来制作3D效果的文字,文章翻译自3D CSS Shadow Text Tutorial.这个简单的CSS文本阴影教程将一步步教你如何通过堆叠多层阴影来创建3D文字,然后进一步利用CSS3的transform和transition属性来实现鼠标移过字体放大的效果.请注意,这个3D文字效果是用纯CSS的,没有用Javascript,并且需要用支持CSS3的浏览器才能看出效果,如firefox.chrome.safari和opera.CSS文字阴影是如何实现的为了实现3

如何利用CSS3制作3D文字效果

下面这篇教程是教你如何用CSS3来制作3D效果的文字,文章翻译自3D CSS Shadow Text Tutorial. 这个简单的CSS文本阴影教程将一步步教你如何通过堆叠多层阴影来创建3D文字,然后进一步利用CSS3的transform和transition属性来实现鼠标移过字体放大的效果.请注意,这个3D文字效果是用纯CSS的,没有用Javascript,并且需要用支持CSS3的浏览器才能看出效果,如firefox.chrome.safari和opera. CSS文字阴影是如何实现的 为了

利用WPS制作语文试卷的方法

第一步.纸张的设置 我们常见的标准的试卷都是八开横排.分两栏.在WPS 中设置的具体操作如下:点击"文件"菜单,选择"页面设置"命令,打开"页面设置"对话框. (1)点击"纸张"选项卡,在"纸张规格"列表中选择"8开 260×368毫米". (2)点击"纸张边距"选项卡,将上下左右的页面边距分别设为:15.15.15.15,装订线宽40,装订线位置在左,左侧大的原因是

利用CSS3制作动态时钟特效代码

  CSS3很多新奇的功能,能制作出很多酷炫的效果,比如今天给大家介绍的这个,国外的牛人利用纯CSS3动画制作出了一个动态的时钟效果,它使用纯CSS3动画还有图形,没有使用任何图片或者是JavaScript脚本.   纯CSS3动画制作的动态时钟 HTML代码 <div id="watch">   <div class="frame-face"></div>   <ul class="minute-marks&qu