咚冬呛
2016-02-21 09:12
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>实践题 - 选项卡</title>
<style type="text/css">
/* CSS样式制作 */
*{margin:0;padding:0;}
.show{
display:block;
}
.hide{
display:none;
}
ul{
}
ul li{
border:1px solid #B8BAB7;
list-style:none;
display:inline-block;
width: 60px;
line-height: 30px;
text-align: center;
border: 1px solid #999;
border-bottom:none;
margin-left:5px;
}
ul li:hover{
cursor:pointer;
}
ul li.active{
border-top:2px solid #8B4513;
border-bottom:2px solid #8B4513;
}
</style>
<script type="text/javascript">
// JS实现选项卡切换
window.onload=function(){
var ul=document.getElementById("ul");
var li=ul.getElementsByTagName("li");
var pdiv=document.getElementById("box");
var cdiv=pdiv.getElementsByTagName("div");
for(var i=0;i<li.length;i++)
{
li[i].index=i;
li[i].onmouseover=function(){
for(var k=0;k<li.length;k++)
{
li[k].className="";
}
this.className="active";
for(var j=0;j<li.length;j++)
{
cdiv[j].className="hide";
}
cdiv[this.index].className="show";
}
}
}
</script>
</head>
<body>
<!-- HTML页面布局 -->
<div id="box">
<ul id="ul">
<li>房产</li>
<li>家居</li>
<li>二手房</li>
</ul>
<div>
<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>
li.active 是li本身class名为active 的样式。
而li .active 是表示li标签下子元素class名为active的样式。
按照本文代码,是需要给带有class名为active的 li标签样式,所以是不能有空格。
刚刚也看到这一点,过来找答案
通俗点就是
li.active 指有个li元素它的class名字为active,css样式对它起作用。(这个是平级)
li .active 指li里还有个子元素,它不一定是li,但它的类名是active,css样式对它起作用。(这个还要向下一级)
JavaScript进阶篇
468782 学习 · 22507 问题
相似问题