下面的代码,当你单击第一个radio时会显示第一个panel的内容,单击第二个radio时会显示第二个panel的内容。 但是当在 后加入后单击第一个radio时会显示第二个panel的内容,加入的为什么会影响pannel的显示呢? form.form .panel { display: none; background: #fff;}form.form .panel:first-child { display: block; }form.form input[name="tabs"]:checked ~ .panels .panel { display: none;}form.form input[name="tabs"]:nth-of-type(1):checked ~ .panels .panel:nth-child(1),form.form input[name="tabs"]:nth-of-type(2):checked ~ .panels .panel:nth-child(2) { display: block;} Tab One Tab Two 11 22 登录后复制 回复讨论(解决方案) nth-of-type(n) 中的n是指在父元素中的第n个子元素, 你在前面加了一个元素 后面的元素在父元素中的排行就向下移了。 你要nth-of-type()中的数值 <br />form.form .panel { <br /> display: none; <br /> background: #fff; <br />} <br />form.form .panel:first-child { display: block; } <br />form.form input[name="tabs"]:checked ~ .panels .panel { <br /> display: none; <br />} <br />form.form input[name="tabs"]:nth-of-type( 2):checked ~ .panels .panel:nth-child(1), <br />form.form input[name="tabs"]:nth-of-type( 3):checked ~ .panels .panel:nth-child(2) { <br /> display: block; <br />} <br /> Tab One Tab Two 11 22 form.form input[name="tabs"]选择到了两个input标签, :nth-of-type(1)选择的是同级里input标签的第一个, 仅仅针对标签不能针对类名 属性名等。 nth-of-type(n) 中的n是指在父元素中的第n个子元素, 你在前面加了一个元素 后面的元素在父元素中的排行就向下移了。 你要nth-of-type()中的数值 <br />form.form .panel { <br /> display: none; <br /> background: #fff; <br />} <br />form.form .panel:first-child { display: block; } <br />form.form input[name="tabs"]:checked ~ .panels .panel { <br /> display: none; <br />} <br />form.form input[name="tabs"]:nth-of-type( 2):checked ~ .panels .panel:nth-child(1), <br />form.form input[name="tabs"]:nth-of-type( 3):checked ~ .panels .panel:nth-child(2) { <br /> display: block; <br />} <br /> Tab One Tab Two 11 22 谢谢 form.form input[name="tabs"]选择到了两个input标签, :nth-of-type(1)选择的是同级里input标签的第一个, 仅仅针对标签不能针对类名 属性名等。 非常感谢 2楼大神。。。。。其实我觉得还不如用js去控制。。。将它写到方法中,以方便后期的维护。 $(' $(this).click(function () { $('.panel').eq(index).show(); }) })