# 1、纯 css 实现选项卡功能
效果展示:
实现原理:利用css3 中input:checked 和 + ~选择器实现
ul li {
float: left;
height: 30px;
width: 100px;
cursor: pointer;
}
input:checked + li {
color: #f00;
}
input:checked ~ div {
visibility: visible !important;
}
#box input {
visibility: hidden;
}
#box div {
position: absolute;
top: 60px;
visibility: hidden;
}
<div>
<ul id="box">
<label>
<input type="radio" name="color" checked value="1" />
<li>标签一</li>
<div>我是内容一</div>
</label>
<label>
<input type="radio" name="color" value="2" />
<li>标签二</li>
<div>我是内容二</div>
</label>
<label>
<input type="radio" name="color" value="3" />
<li>标签三</li>
<div>我是内容三</div>
</label>
<label>
<input type="radio" name="color" value="4" />
<li>标签四</li>
<div>我是内容四</div>
</label>
</ul>
</div>
/* 三种隐藏显示方式的对比 */
/*
display:none;
1、DOM结构: dom元素消失,不占空间
2、事件监听:无法监听事件
3、性能方面:会引发重排,性能差
4、继承方面:不会被子类继承
visibility:hidden;
1、DOM结构: dom元素隐藏不会消失,占空间
2、事件监听:无法监听事件
3、性能方面:会引发重绘,性能较高
4、继承方面:会被子类继承,子元素可以通过visibility:visible显示出来
opacity:0
1、DOM结构:透明度100%,元素隐藏,占空间
2、事件监听:可以DOM监听事件
3、性能方面:提升合成层,不会触发重绘,性能较高
4、继承方面:会被子类继承,子元素不可以通过opacity:1显示出来
*/