个人作业,内附详细注释,可供参考
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>实践题 - 选项卡</title>
<style type="text/css">
/* CSS样式制作 */
</style>
<script type="text/javascript">
// 页面加载完毕后执行,如果放在body最后可不用window.onload
window.onload = function() {
// 通过id或元素名称的方式获取选项卡组件
var oNav = document.getElementById('nav');
var oLis = oNav.getElementsByTagName('li');
var oCont = document.getElementById('content');
var oDivs = oCont.getElementsByTagName('div');
var len =oLis.length;
// 给所有的li添加 onmousemove 和 onclic 事件
for (var i = 0; i < len; i++) {
oLis[i].index = i;
//鼠标滑过时,仅为当前鼠标所在li添加checked样式
oLis[i].onmousemove =function(){
for(var j=0;j<len;j++){
oLis[j].className='';
}
oLis[this.index].className = 'checked';
}
// 点击时将所有切换卡状态重置,即去掉li选中的样式,隐藏切换卡内容
oLis[i].onclick = function() {
for(var j=0;j<len;j++){
oLis[j].className='';
oDivs[j].className='';
oDivs[j].setAttribute('display','none');
}
// 将被选中的li 及对应点选项卡添加class样式
oLis[this.index].className = 'checked';
oDivs[this.index].className = 'show';
}
}
}
</script>
<style type="text/css">
* {
margin: 0;
padding: 0;
}
body {
padding-left: 5px;
}
#nav {
width: 400px;
height: 30px;
line-height: 30px;
text-align: center;
font: "微软雅黑";
}
#nav ul li {
width: 65px;
border-left: #B5BDB7 solid 0.5px;
border-right: #B5BDB7 solid 0.5px;
border-top: #B5BDB7 solid 0.5px;
margin: 0 3px;
float: left;
list-style: none;
cursor: pointer;
}
#nav ul li.checked {
border-top: #8B4412 solid 1px;
border-bottom: #fff solid 1px;
}
#content {
width: 500px;
margin-top: 1px;
}
#content div {
width: 100%;
height: 155px;
border-top: #8B4412 solid 1px;
border-left: #4E7BA5 solid 1px;
border-right: #4E7BA5 solid 1px;
border-bottom: #4E7BA5 solid 1px;
padding-left: 5px;
display: none;
}
#content div.show {
display: block;
}
/*这里起初用的是line-height和height,后来发现各行间距不一致,原因是元素高度不会被合并,
所以调整为margin,因为当两个垂直外边距相遇时,它们将形成一个外边距,这样美观性大大提高。*/
#content div p {
margin: 10px 0;
}
</style>
</head>
<body>
<!-- HTML页面布局 -->
<div id="nav">
<ul>
<li class="checked">房产</li>
<li>家具</li>
<li>二手房</li>
</ul>
</div>
<div id="content">
<div class="show">
<p>275万购昌平邻铁三居 总价20万买一居</p>
<p>200万内购五环三居 140万安家东三环</p>
<p>北京首现零首付楼盘 53万购东5环50平</p>
<p>京楼盘直降5000 中信府 公园楼王现房</p>
</div>
<div>
<p>40平出租屋大改造 美少女的混搭小窝</p>
<p>经典清新简欧爱家 90平老房焕发新生</p>
<p>新中式的酷色温情 66平撞色活泼家居</p>
<p>瓷砖就像选好老婆 卫生间烟道的设计</p>
</div>
<div>
<p>通州豪华3居260万 二环稀缺2居250w甩</p>
<p>西3环通透2居290万 130万2居限量抢购</p>
<p>黄城根小学学区仅260万 121平70万抛!</p>
<p>独家别墅280万 苏州桥2居优惠价248万</p>
</div>
</div>
</body>
</html>