0

通过 css 仅选择类区域中的第一个 ul

<div class='area'>
  <div>
   <ul>     
      <li>
         <ul>
      </li>
  </div>
</div>
<div class='area'>
  <div>
   <ul>
      <li>
         <ul>
      </li>
  </div>
</div>
<div class='area'>
  <div>
   <ul>
      <li>
         <ul>
      </li>
  </div>
</div>

我试过这个

'.area > ul'div# 这在.areaand之间不起作用ul

有没有不同的方法来选择元素而不引用选择器中的中间 div

所以,最后我应该得到 3ul没有嵌套 ul 的

更新

在我的代码的其他一些模板中,第一个 ul 在第二级之后

  • 因此,为了避免选择器混淆,我试图避免中间的 div。

  • 4

    2 回答 2

    3

    假设您实际上有有效的 HTML,您可以使用*通配符选择器,它与您将要获得的“[not] 引用中间 div”一样接近。也就是说,提到孩子有什么问题<div>?:

    .area > * > ul {
        // Properties
    }
    

    Using> *匹配任何子标签,因此如果这是您的最终目标,它会使您的 CSS 更加灵活。


    对于(可能)两个级别的元素,假设它们是<div>s,您可以执行以下操作:

    .area > div > ul,
    .area > div > div > ul, {
        // Properties
    }
    
    于 2013-08-21T16:17:37.697 回答
    -4

    如果您的 html 正确,则“.area ul”将是您正在寻找的选择器。

    编辑:对不起,html有点令人困惑......我认为那些</ul>s<ul>s重叠的<li>s

    这个问题与您的问题有关: 类似于 jQuery .closest() 但遍历后代?

    于 2013-08-21T16:17:57.777 回答