:不是伪类不使用多个元素

时间:2018-05-29 20:51:56

标签: html css css3 css-selectors pseudo-class

我有一个元素列表,我想对所有元素应用一些更改,除了9和11,所以我写了类似的东西:

.myList li:not(:nth-child(9)),
.myList li:not(:nth-child(11)) {
  background-color: greenyellow;
}
<ol class="myList">
  <li>One</li>
  <li>Two</li>
  <li>Three</li>
  <li>Four</li>
  <li>Five</li>
  <li>Six</li>
  <li>Seven</li>
  <li>Eight</li>
  <li>Nine</li>
  <li>Ten</li>
  <li>Eleven</li>
  <li>Twelve</li>
  <li>Thirteen</li>
  <li>Fourteen</li>
</ol>

此代码将更改应用于所有<li>,没有例外,但如果我只放一个,它就会起作用!像这样:(这种方式将更改应用于除9之外的所有更改

   .myList li:not(:nth-child(9)) {
      background-color: greenyellow;
   }

如何在代码中使用 :not 伪类添加两个或更多不同的兄弟姐妹号码?

2 个答案:

答案 0 :(得分:1)

<project> <modelVersion>4.0.0</modelVersion> <groupId>com.mycompany.app</groupId> <artifactId>my-app</artifactId> <version>1</version> <build> <plugins> <plugin> <artifactId>maven-assembly-plugin</artifactId> <version>2.2.1</version> <executions> <execution> <id>default-cli</id> <phase>package</phase> <goals> <goal>single</goal> </goals> <configuration> <finalName>${project.artifactId}</finalName> <descriptors> <descriptor>dist-all.xml</descriptor> </descriptors> </configuration> </execution> </executions> </plugin> </plugins> </build> </project> 适用于所有元素的原因是因为9和11都至少处于1个条件。
第9个不是第11个孩子所以css适用,反之亦然

在你的情况下,你只想做

<?xml version="1.0" encoding="UTF-8"?>
<assembly>
  <id>default-cli</id>
  <formats>
    <format>tgz</format>
  </formats>
  <includeBaseDirectory>false</includeBaseDirectory>
  <fileSets>
    <fileSet>
      <directory>src/app</directory>
      <outputDirectory>target</outputDirectory>
    </fileSet>
  </fileSets>
</assembly>

这样它就可以选择任何不是第9或第11的东西

答案 1 :(得分:1)

你的代码不能正常工作,因为第一行是指所有标记exept编号9(包括编号11),第二行是指所有标记exept编号11(包括编号9)所以这两行一起指的是所有标签。 您可以将类添加到li编号9和编号11 然后你的代码变成了 .myList li:not(.class)