CSS - 如果元素有任何类

RNP*_*NPF 2 html css

我试图用CSS隐藏一个元素,如果body有任何类应用它.

<body class="x"> - element should hide
<body class="a"> - element should hide
<body> - element should show
Run Code Online (Sandbox Code Playgroud)

如果body是无类别的或者具有类.page-home,则应该出现此元素.

但除此之外,该元素应该被隐藏.

我尝试过通用选择器:

#body.* .withicon {
display:none;
}

.page-home .withicon {
display:block;
}
Run Code Online (Sandbox Code Playgroud)

这没用,

我试过像这样的技巧

.withicon {
display:none;
}

.page-home .withicon {
display:block;
}

.withicon:not([class]) {
display:none;
}
Run Code Online (Sandbox Code Playgroud)

但我似乎无法让它运转起来.

Jos*_*ier 6

.withicon如果body是无类别的或具有类,则该元素应该出现.page-home

基于您问题中的选择器,您似乎想要以下内容:

.withicon {
  display: none;
}

body:not([class]) .withicon,
.page-home .withicon {
  display: block;
}
Run Code Online (Sandbox Code Playgroud)

如果.withicon元素具有body使用选择器的类属性,则应该在否定元素时使用类属性否定元素body:not([class]).

换句话说,如果元素没有class属性,选择器body:not([class]) .withicon将选择.withicon后代元素body.

  • `[class]`和`[class =""]`有不同的含义,这是前者需要的. (2认同)