【问题标题】:CSS selecting children, need bypass?CSS选择孩子,需要绕过吗?
【发布时间】:2013-01-14 05:30:06
【问题描述】:

我不知道如何解决请帮忙。

我有一个 css 属性适用于第一个 ul 之后的所有内容

 .a ul ul {
    display:none;
}

如果 html 在下面,则 css 可以正常工作。

<section class="a">
    <ul>
      <li>  
        <ul> </ul>
      </li>
    </ul>
</section>

但是,如果 html 是

<section class="a">
  <ul>
    <li> <div> </div> 
      <ul> </ul>
    </li>
  </ul>
</section>

css 不会通过div 标签。

请高手指点解决方法,万分感谢。

问题

这种情况下 CSS 能找到子元素吗?

【问题讨论】:

  • 你确定 CSS 工作正常吗?您的示例显示了 .A(大写 A)的 CSS 类,但在您的 HTML 中,您将其称为“a”(小写 a)。 CSS 类名区分大小写。
  • 好的,现在 CSS 类的情况是正确的......你想要实现什么?是不是想让子 ul 隐藏?
  • 是的,我希望隐藏第一个 ul 之后的所有 ul
  • CSS怎么不能通过div?你这是什么意思?
  • 如果我插入标签,不仅是div,在li之后和ul之前,那么css属性将不会正确应用下一个ul

标签: html css children


【解决方案1】:

好的,你想像这样使用 > 选择器:

.a ul > ul {
    display:none;
}

选择器 X > Y 从 X 类型中选择 Y 类型的孩子

http://www.w3schools.com/cssref/css_selectors.asp

希望对你有帮助

内森

【讨论】:

  • 选择器ul &gt; ul 没有意义。 ul 唯一可以拥有的孩子是 li。您的意思可能是li &gt; ulul &gt; li &gt; ul
  • 非常感谢。但是,这不起作用.....如果使用这种方式,您需要编写 ul>li>ul
  • 好点 BoltClock。我只是在使用 OP 的原始 CSS。 ul > li > ul 更好
【解决方案2】:

如果您真的希望它“在第一个之后全部隐藏”,那么您可以使用 here (30 CSS selectors you must memorize) 中的 #26 之类的 css 伪类

.a ul {display:none;}
.a ul:first-child {display:block;}

以上是一个很棒的资源,应该为所有使用 CSS 的人添加书签。

【讨论】:

  • 非常感谢,我现在试试这个方法
猜你喜欢
  • 1970-01-01
  • 2011-04-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多