【问题标题】:prevent parent li + li carrying to child防止父母李+李携带给孩子
【发布时间】:2012-08-24 00:28:43
【问题描述】:

我在导航菜单上使用它来分隔列表项

nav li + li:before{
    content: " | ";
}

这会在每个列表项之间放置一个栏,它不会将栏放在第一个元素之前。并且使用 :before 伪选择器,它不会在最后放置一个。 (这里建议Separators For Navigation

但是,我想防止这种情况传递到子列表项。

例如nav ul li ul li

我在子菜单上尝试了content:none;content:"";,但它们仍然显示在子菜单中。

请帮忙!

【问题讨论】:

    标签: html css html-lists


    【解决方案1】:

    没有覆盖的替代方案,使用子组合器 (>):

    nav > ul > li + li:before {
        content: " | ";
    }
    

    如果该元素是另一个元素的直接子元素(而不是该元素的孙子元素),则子组合器会选择该元素。

    【讨论】:

      【解决方案2】:

      啊 - 我找到了答案!

      nav ul li li:before {
          content: "";
      }
      

      【讨论】:

      • 这确实有效,而且做得很好!但最好使用更具体的选择器,而不是覆盖您之前指定的所有内容。如果只是因为当您稍后尝试巧妙地修改样式(并且必须弄清楚为什么某些东西没有级联)时,它更有效,更简单。
      猜你喜欢
      • 1970-01-01
      • 2014-01-12
      • 2010-11-01
      • 2011-11-10
      • 2021-10-29
      • 1970-01-01
      • 1970-01-01
      • 2019-07-26
      • 1970-01-01
      相关资源
      最近更新 更多