为了账号安全,请及时绑定邮箱和手机立即绑定

为什么ul li.active里li和.active之间不能有空格?有了空格之后就没有效果了(只看CSS的代码就可以了)

<!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>

正在回答

3 回答

li.active  是li本身class名为active  的样式。

而li  .active  是表示li标签下子元素class名为active的样式。

按照本文代码,是需要给带有class名为active的 li标签样式,所以是不能有空格。

7 回复 有任何疑惑可以回复我~
#1

咚冬呛 提问者

非常感谢!
2016-02-23 回复 有任何疑惑可以回复我~
#2

qq_迷宫的中心_0

完美的解释!
2017-07-12 回复 有任何疑惑可以回复我~

刚刚也看到这一点,过来找答案

0 回复 有任何疑惑可以回复我~

通俗点就是

li.active 指有个li元素它的class名字为active,css样式对它起作用。(这个是平级)

li .active 指li里还有个子元素,它不一定是li,但它的类名是active,css样式对它起作用。(这个还要向下一级)

2 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么ul li.active里li和.active之间不能有空格?有了空格之后就没有效果了(只看CSS的代码就可以了)

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号