【问题标题】:Color all elements except for first CSS为除第一个 CSS 之外的所有元素着色
【发布时间】:2014-08-27 22:08:26
【问题描述】:

这是我的例子:

http://jsfiddle.net/mato75/84mq6bLr/

我想为除第一段之外的所有元素着色。

我知道如果我使用 li 代替类,或者即使我将类放在 li 中,我也会解决这个问题,但结构如示例所示。

有什么建议吗?

.dd ~ .dd {
    background:#ff0000;
 }

【问题讨论】:

  • 标记很重要,把它放在小提琴中是不够的。
  • 查看 CSS 中的 pseudoclasses。但是在你的例子中让我感到困惑的是你说你想改变color,而你的css规则提到了background。背景和颜色是两个不同的概念。
  • 你可以做 li ~ li .dd {background:#ff0000;} 演示:jsfiddle.net/webtiki/84mq6bLr/9

标签: html css css-selectors


【解决方案1】:
li:nth-child(n+2) p{
    background:#ff0000;
}

jsFiddle example

【讨论】:

    【解决方案2】:
    .dd{
        background:#ff0000;
    }
    ul li:first-child .dd{
        background:none;
    }
    

    【讨论】:

      【解决方案3】:
      li:not(:first-child)>p {
          background-color: #900;
      }
      

      更新小提琴http://jsfiddle.net/84mq6bLr/7/

      【讨论】:

        【解决方案4】:

        您可以使用一个名为 first-child 的 CSS 选择器。你可以在这里看到它的实际效果:

        http://jsfiddle.net/84mq6bLr/8/

        li>p.dd {
            background-color:#ff0000;
        }
        li:first-child>p.dd {
            background-color:initial;
        }
        

        基本上,它读作“在任何组中查找第一个 li 元素,然后在其中找到具有 dd 类的任何段落,然后将其颜色重置为默认值`。

        这可能不适用于旧版浏览器(例如 IE8)。

        【讨论】:

        • 为什么要在这里使用 first-of-type 而不是更广泛支持的选项(兄弟选择器、nth-child 等)? ul 元素唯一允许的子元素是 li。
        • @cimmanon - 你说得对,我今天学到了一些东西 :) 该示例已更新为使用 child 选择器。
        猜你喜欢
        • 2015-06-18
        • 1970-01-01
        • 1970-01-01
        • 2010-09-15
        • 2014-09-02
        • 1970-01-01
        • 2013-09-23
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多