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

请大神给解答一下,这里面有一个“one”和“two”两个类选择器,为什么必须在用此种方式“#nav .two”、“#content .one”,直接用“.one”和“.two”为什么不行,我不明白,求大神细致解答一下,这个基础知识?

<!DOCTYPE html>

<html>

<head>

    <meta charset="UTF-8">

    <title>最终综合练习</title>

<style type="text/css">

    *{

        margin:0;

        padding:0;

    }

    #message{

        width: 600px;

        height: 400px;

        padding:50px;

        border: 1px solid red;

        margin:50px auto;

    }


   #nav{

       width:500px;

       height:50px;

       border-bottom: 5px solid saddlebrown;

   }

   #nav li{

       display: inline-block;

       width:100px;

       height:50px;

       text-align: center;

       font-weight: bold;

       border: 2px solid cornflowerblue;

       line-height: 50px;

       font-size: 24px;

       cursor:pointer;

       float:left;

       margin: -2px 10px;

       border-bottom: none;

       background: #fff;

   }

    #content{

        width: 498px;

        height:200px;

        border:1px solid cornflowerblue;

        border-top:none;

        overflow: auto;

    }

    #content p{

        line-height: 30px;

        font-size:20px;

        margin: 20px;

        display: none;

    }

    #nav .two{

        border-top:5px solid saddlebrown;

        border-bottom: 2px solid #fff;

    }

    #content .one{

        display: block;

    }

</style>

<script type="text/javascript">

   //点击事件

   window.onload=function (){

       var ulnode=document.getElementById("nav");

       var linodes=ulnode.getElementsByTagName("li");

       var divnode=document.getElementById("content");

       var pnodes=divnode.getElementsByTagName("p");

       var i,n,num=linodes.length;

       for(i=0;i<num;i++){

           linodes[i].index=i;

           linodes[i].onclick=function () {

               for(n=0;n<linodes.length;n++){

                   linodes[n].className="";

                   pnodes[n].className="";

               }

               this.className="two";

               pnodes[this.index].className="one";

           }

       }

   }

</script>

</head>

<body>

   <div id="message">

       <ul id="nav">

           <li>房产</li>

           <li>家居</li>

           <li >二手房</li>

       </ul>

       <div id="content">

           <p>  275万购昌平邻铁三居 总价20万买一居<br/>

               200万内购五环三居 140万安家东三环<br/>

               北京首现零首付楼盘 53万购东5环50平<br/>

               京楼盘直降5000 中信府 公园楼王现房</p>

           <p> 40平出租屋大改造 美少女的混搭小窝<br/>

               经典清新简欧爱家 90平老房焕发新生<br/>

               新中式的酷色温情 66平撞色活泼家居<br/>

               瓷砖就像选好老婆 卫生间烟道的设计</p>

           <p> 通州豪华3居260万 二环稀缺2居250w甩<br/>

               西3环通透2居290万 130万2居限量抢购<br/>

               黄城根小学学区仅260万 121平70万抛!<br/>

               独家别墅280万 苏州桥2居优惠价248万</p>


       </div>

   </div>

</body>

</html>


正在回答

1 回答

都可以,这个写法表明id="one"的元素是nav类的后代。一般类选择器和后代选择器一起使用的情况比较多,现在这个情况看不出区别。

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

举报

0/150
提交
取消

请大神给解答一下,这里面有一个“one”和“two”两个类选择器,为什么必须在用此种方式“#nav .two”、“#content .one”,直接用“.one”和“.two”为什么不行,我不明白,求大神细致解答一下,这个基础知识?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信