我爱撸码,撸码使我感到快乐!
大家好,我是Counter。
今天就来敲一敲,选项卡,注意哦,不是一般利用js完成的选项卡,今天是纯用HTML和CSS来完成的,这怎么可能?那你不用js的点击事件,怎么处理?注意CSS3的新属性就可以完成啦,利用单选框的选择状态来查找兄弟元素,来改变下面元素的属性,就可以达到目的了。html的结构就不赘述了。
先看看效果:

效果有点丑,功能有就行了,懒得去修饰了,还有更重要的事等着我,好吧,代码给出:

<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>纯CSS3选项卡</title>
<style>
/* 初始化 */
body, ul, li, a {
margin: 0;
padding: 0;
text-decoration: none;
list-style: none;
}
/* 外面一层容器居中 */
.wrapper {
width: 600px;
margin: 0 auto;
font-size: 0;
background-color: #ccc;
}
/* 设置导航栏为块级行元素,并将里面的字体垂直居中 */
.nav .nav-list li {
display: inline-block;
width: 200px;
height: 50px;
text-align: center;
line-height: 50px;
font-size: 20px;
user-select: none;
}
/* 设置主题新闻样式以及字体大小 */
.news ul {
display: none;
padding: 20px;
font-size: 18px;
background-color: #f7f7f7;
}
/* 将主题新闻里的每条新闻空开来 */
.news li {
padding: 10px;
}
/* 设置主题新闻的字体颜色 */
.news li a {
color: #888;
}
/* 最关键的一步,利用表单元素的属性,选中或者未选中,来设置,展示新闻主题是哪块 */
#hot:checked ~ .news .hot-news,
#home:checked ~ .news .home-news,
#international:checked ~ .news .international-news {
display: block;
}
/* 当表单元素被选中时,对应的导航栏背景颜色也跟着变 */
#hot:checked ~ .nav li:nth-of-type(1),
#home:checked ~ .nav li:nth-of-type(2),
#international:checked ~ .nav li:nth-of-type(3)
{
background-color: #f7f7f7
}
/* 将label标签的设置为行级块元素。同时设置大小,这样点击可点击的范围就变大了 */
.nav .nav-list label {
display: inline-block;
width: 200px;
height: 50px;
cursor: pointer;
}
/* 将单选框给隐藏掉 */
.wrapper input {
display: none;
}
</style>
</head>
<body>
<div class="wrapper">
<input type="radio" name="tab" id="hot" checked>
<input type="radio" name="tab" id="home">
<input type="radio" name="tab" id="international">
<div class="nav">
<ul class="nav-list">
<li>
<label for="hot">热门新闻</label>
</li>
<li>
<label for="home">国内新闻</label>
</li>
<li>
<label for="international">国际新闻</label>
</li>
</ul>
</div>
<div class="news">
<ul class="hot-news">
<li>
<a href="javascript:;">AAAAAAAAAAA</a>
</li>
<li>
<a href="javascript:;">AAAAAAAAAAA</a>
</li>
<li>
<a href="javascript:;">AAAAAAAAAAA</a>
</li>
<li>
<a href="javascript:;">AAAAAAAAAAA</a>
</li>
<li>
<a href="javascript:;">AAAAAAAAAAA</a>
</li>
</ul>
<ul class="home-news">
<li>
<a href="javascript:;">BBBBBBBBBBB</a>
</li>
<li>
<a href="javascript:;">BBBBBBBBBBB</a>
</li>
<li>
<a href="javascript:;">BBBBBBBBBBB</a>
</li>
<li>
<a href="javascript:;">BBBBBBBBBBB</a>
</li>
<li>
<a href="javascript:;">BBBBBBBBBBB</a>
</li>
</ul>
<ul class="international-news">
<li>
<a href="javascript:;">CCCCCCCCCCC</a>
</li>
<li>
<a href="javascript:;">CCCCCCCCCCC</a>
</li>
<li>
<a href="javascript:;">CCCCCCCCCCC</a>
</li>
<li>
<a href="javascript:;">CCCCCCCCCCC</a>
</li>
<li>
<a href="javascript:;">CCCCCCCCCCC</a>
</li>
</ul>
</div>
</div>
</body>
</html>

纯CSS3完成选项卡,不要js完成的选项卡的更多相关文章

  1. 一款纯css3实现的tab选项卡

    今天给大家带来一款纯css3实现的tab选项卡.单击左侧的选项的时候,右侧内容以动画的形式展示.效果图如下: 在线预览   源码下载 实现的代码. html代码: <div class=&quo ...

  2. 纯css3圆角下拉菜单 都没敢用js

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  3. 纯CSS3实现动态火车行驶特效

    上次开完飞机,这次开火车 查看效果:http://hovertree.com/texiao/css3/7/ 效果图: 代码如下: <!DOCTYPE html> <html> ...

  4. [原创]纯CSS3打造的3D翻页翻转特效

    刚接触CSS3动画,心血来潮实现了一个心目中自己设计的翻页效果的3D动画,页面纯CSS3,目前只能在Chrome中玩,理论上可以支持Safari. 1. 新建HTML,代码如下(数据和翻页后的数据都是 ...

  5. 纯css3 加载loading动画特效

    最近项目中要实现当页面还没有加载完给用户提示正在加载的loading,本来是想做个图片提示的,但是图片如果放大电脑的分辨率就会感觉到很虚,体验效果很不好.于是就采用css3+js实现这个loading ...

  6. 一些纯css3写的公司logo

      随着对css3了解得越深入,越来越发现了css3的强大.css3不但能完成一些基本的特效如圆角阴影等,还能借助动画技术实现一些复杂的动画,能替代很多以前js才能完成的工作,css3的作用还不止于此 ...

  7. 纯CSS3大转盘抽奖(响应式、可配置)

    源于前段时候微信小程序最初火爆公测时段,把以前用 Canvas 实现的大转盘抽奖移植成微信小程序,无奈当时小程序对 Canvas 支持不够完善,只好降低用 CSS3 实现.虽然比不上 Canvas 绘 ...

  8. 一款纯css3实现的条纹加载条

    之前为大家带来了很多加载动画. 基于prefixfree.js的进度加载条 ,基于jquery带百分比的响应式进度加载条.今天给大家分享一款纯css3实现的条纹加载条.带有响应式的效果.效果图如下 : ...

  9. 7款纯CSS3实现的炫酷动画应用

    1.纯CSS3实现人物摇头动画 这次我们要来分享一款超级可爱的纯CSS3人物摇头动画,初始化的时候人物的各个部位是利用CSS3动画效果拼接而成,接下来就是人物听音乐的场景,一边听音乐一边摇着脑袋,十分 ...

随机推荐

  1. 数据可视化——阿里云解决方案DataV

    数据可视化——阿里云解决方案DataV https://help.aliyun.com/document_detail/53844.html?spm=a2c4g.11186623.6.579.37fd ...

  2. 20175303 Mycp实现Linux下cp xxx1 xxx2的功能

    20175303 Mycp实现Linux下cp xxx1 xxx2的功能 一.题目要求 编写MyCP2.java 实现类似Linux下cp XXX1 XXX2的功能,要求MyCP2支持两个参数: ja ...

  3. UIPullRefreshFlash模块demo示例

    UIPullRefreshFlash 模块概述:UIPullRefreshFlash模块对引擎新推出的下拉刷新接口进行了一层封装,app可以通过此模块来实现带炫酷动画效果的下拉刷新功能.使用此模块,在 ...

  4. 推荐一个Monokai风格的EditPlus配色方案

    如何配置 找到EditPlus的配置文件editplus_u.ini,该文件默认在:系统盘:\Users\用户名\AppData\Roaming\EditPlus目录中.将其中的内容替换为如下即可: ...

  5. C++11 新特性之operator "" xxx

    从C++11开始,我们可以使用以下形式通过常量字符串构造自定义类型, 比如: class Person { public: Person(const std::string& name): _ ...

  6. 安装VC6.0安装步骤及心得体会

    一.安装步骤: 1.打开网站https://pan.baidu.com/s/nxee/AD ,输入提取密码:wdhk. 2.登录微信账号,将软件下载到D盘. 3.鼠标右键点击VC6.0快捷方式,选择“ ...

  7. XXL-JOB之本地环境搭建

    一.源码下载 1.官网地址 登录以下地址查看详细搭建步骤: https://www.cnblogs.com/xuxueli/p/5021979.html 2.下载源码 根据1中打开的页面,下载源码,如 ...

  8. 声明式开发 & 命令式开发

    何为声明式开发,何又为命令式开发~~~ 这里我不做太多概念的剖析,我们只要明确一个: 声明式开发只是告诉计算机需要什么,而不是把每一步都计划好:典型代表为React: 命令式开发则是每一步明确的去操作 ...

  9. rpm和yum模拟安装

    在更新安装包之前,我们可能会想做一个测试运行,换句话说,模拟而不是实际安装更新的包,以确定在安装之前是否有任何需要处理的问题. 以测试更新openssh2为例: yum update openssh2 ...

  10. 玩转Vuejs--数组监听

    Vue中对数据的监听主要是依靠Object.defineProperty来实现的,这种实现主要是针对key/value形式的对象,对数组中值的变化是无能为力的,那么该如何对数组中的数据进行监听呢,下面 ...