分享好友 前端技术首页 频道列表

使用CSS3实现选项卡切换的方法

css教程  2015-08-09 19:520

:target是什么?

MDN是这样描述的::target

    The :target pseudo-class represents the unique element, if any, with an id matching the fragment identifier of the URI of the document.

在document中,可以设置锚链接,举个例子:

CSS Code复制内容到剪贴板
  1. <a href="#tab">Test :target</a>   
  2. <a href="#tab2">Test 2:target</a>   
  3. <div id="tab">This is a tab.</div>   
  4. <div id="tab2">This is another tab.</div>  

上面存在两个锚链接:#tab和t#ab2。当点击锚链接时,就会跳到对应的div,则::target就是给这些div用的。添加一下CSS

CSS Code复制内容到剪贴板
  1. :target{   
  2.     color:red;   
  3. }   
  4. #tab:target::after{   
  5.     content:"tab1"  
  6. }  

点击锚链接,对应链接的div的文本变成红色,另外,给#tab后面插入一个文本。

效果猛戳:https://jsfiddle.net/dwqs/cL8rawov/
应该大致明白了:target的含义了吧~

:target可以做什么

最简单的用处:利用:target实现选项卡切换。
HTML:

      

XML/HTML Code复制内容到剪贴板
  1. <div class="tab-control">  
  2.           <a href="#tab1">tab1</a>  
  3.           <a href="#tab2">tab2</a>  
  4.           <a href="#tab3">tab3</a>  
  5.       </div>  
  6.       <div class="tabs">  
  7.           <div id="tab1" class="tab">This is a tab1</div>  
  8.           <div id="tab2" class="tab">This is a tab2</div>  
  9.           <div id="tab3" class="tab">This is a tab3</div>  
  10.       </div>  

CSS:

CSS Code复制内容到剪贴板
  1. .tab-control a{   
  2.     display:inline-block;   
  3.     text-decoration:none;   
  4.     color:#FFF;   
  5.     height:20px;   
  6.     width:40px;   
  7.     text-align:center;   
  8.     line-height:20px;   
  9.     background:rgba(70,121,189,0.75);   
  10. }   
  11. .tab-control a:hover{   
  12.     background:rgba(70,121,189,1);   
  13. }   
  14. .tabs{   
  15.     position:relative;   
  16.     border:1px solid red;   
  17.     height:200px;   
  18.     width:135px;   
  19.     overflow:hidden;   
  20. }   
  21. .tab{   
  22.     height:100%;   
  23.     width:100%;   
  24. }   
  25. :target{   
  26.     display:block;   
  27. }  

看看效果:Demo
当然,:target的功能不仅局限于此。隐藏元素、创建lightbox 等。MDN上给了很多个demo:more demo.
你自己也可以脑洞大开一下,哈哈。
浏览器支持

对于:target伪类,浏览器支持情况还是不错的。
使用CSS3实现选项卡切换的方法

查看更多关于【css教程】的文章

展开全文
相关推荐
反对 0
举报 0
评论 0
图文资讯
热门推荐
优选好物
更多热点专题
更多推荐文章
CSS3中的px,em,rem,vh,vw辨析 css3 vw
1、px:像素,精确显示2、em:继承父类字体的大小,相当于“倍”,如:浏览器默认字体大小为16px=1em,始终按照div继承来的字体大小显示,进场用于移动端          em换算工具:http://www.runoob.com/tags/ref-pxtoemconversion.html3、rem:与em类似,

0评论2023-03-08902

CSS3 Flexbox轻松实现元素的水平居中和垂直居中
CSS3 Flexbox轻松实现元素的水平居中和垂直居中网上有很多关于Flex的教程,对于Flex的叫法也不一,有的叫Flexbox,有的叫Flex,其实这两种叫法都没有错,只是Flexbox旧一点,而Flex是刚出来不久的东西而已,为了方便说明,赶上新技术,下面我就把这种布局叫Fl

0评论2023-03-08774

css3多行文本溢出显示省略号… css3行超出省略号
.title {width: rem(210);overflow: hidden;text-overflow: ellipsis;display: -webkit-box;-webkit-line-clamp: 2;-webkit-box-orient: vertical;}

0评论2023-03-08638

css3新增特性 css 3新增特性
 1、CSS3选择器2、CSS3边框(Borders)3、CSS3背景4、CSS3渐变5、CSS3文本效果6、CSS3字体7、CSS3转换和变形1)2D转换方法2)3D转换属性8、CSS3过度9、CSS3动画10、CSS3多列11、CSS3盒模型12、CSS3伸缩布局盒模型(弹性盒子)13、CSS3多媒体查询

0评论2023-03-08488

纯css3代码写九宫格效果 css九宫格 图片布局
主要用到css3中的transition和布局知识。代码如下1 !DOCTYPE html2 html lang="en"3 head4 meta charset="UTF-8"5 meta name=""6 title标题/title7 /head8 style type="text/css"9 *{margin: 0;padding: 0;} 10 body{background: url(images/bg.jpg);}

0评论2023-03-08797

css3动画 --- 网站背景图片渐变且切换
!DOCTYPE htmlhtmlheadmeta charset="utf-8"titleCSS3全屏背景图片缩小渐变自动切换代码/title!-- link rel="stylesheet prefetch" href="http://fonts.useso.com/css?family=Raleway:300" --style type="text/css"*{margin:0;padding:0;}.slideshow

0评论2023-03-08678

《图解CSS3》——笔记(一) css3知识点思维导图
作者:大漠勘误:http://www.w3cplus.com/book-comment.html2014年7月14日14:46:35第一章  揭开CSS3的面纱1.1  什么是CSS3CSS2.1是单一的规范,而CSS3被划分成几个模块组,每个模块组都有自己的规范.1.1.1  CSS3新特性1.强大的CSS3选择器2.抛弃图片的视觉效

0评论2023-03-08466

CSS3 Transform——transform-origin
在CSS2.1中,我们的页面都是静态的,网页设计师也习惯把它作为页面效果的设计工具。但往往有些页面效果不只是静态的,比如说,如何实际移动一些元素?如何更改元素的外观——旋转或缩放?多年来,Web设计师为了给修改页面的外观,都依赖于图片、Flash或JavaSc

0评论2023-03-08931

css3的calc() css3的百分比减宽,减高,加,乘,除,适合用于后台的排版定位
css3的calc() css3的百分比减宽,减高,加,乘,除,适合用于后台的排版定位浏览器支持IE9+、FF4.0+、Chrome19+、Safari6+calc()语法非常简单,就像我们小时候学加 (+)、减(-)、乘(*)、除(/)一样,使用数学表达式来表示:.haorooms {width: calc(expressi

0评论2023-03-08575

更多推荐