html - 使用 :not in conjunction with adjacent selectors

标签 html css css-selectors

<分区>

我有这样的 HTML:

<div class="parent">
    <div class="thumb">...</div>
    <div class="text">...</div>
</div>

我希望“文本”div 的背景为白色。但前提是它前面没有“拇指”div,因为该 div 不会一直存在。

我意识到我可以做这样的事情:

.parent .text {background-color: #fff;}
.parent .thumb + .text {background-color: transparent;}

因此,将所有文本背景涂成白色,然后覆盖前面有缩略图 div 的背景。

但我想知道是否可以做类似的事情:

.parent :not(.thumb +) .text {background-color: white;}

在前面没有“thumb”div 的情况下,通过仅针对“text”div 来一石二鸟。有什么想法吗?

最佳答案

您可以使用 SASS 在 CSS 中使用条件 (if/else) :

$type: monster;
p {
  @if $type == ocean {
    color: blue;
  } @else if $type == matador {
    color: red;
  } @else if $type == monster {
    color: green;
  } @else {
    color: black;
  }
}

检查 documentation !

或者,您可以根据需要使用 JavaScript/jQuery 添加/删除类。

标准 CSS 没有实际的 if/else。

关于html - 使用 :not in conjunction with adjacent selectors,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44073281/

上一篇:html - 在最后一行调整 flex 元素的大小

下一篇:javascript - 如何将js函数添加到jquery日历和动态工具提示

相关文章:

html - 如何在 react 中画线

html - 如何防止 headline 和 span 元素之间的换行符?

css - 如何让 CSS 选择器跳过?

html - CSS 选择器 [类型 ="var"] 不选择低字母与高字母

jquery - CSS 和 jQuery : . name vs name^= (即类 vs "id arrays")

javascript - onclick显示写在<button>之后的<div>(不是所有的div)

javascript - 从 iframe 页面事件更改父级的 css

javascript - 带有 YouTube 皮肤的 VideoJs 播放器

php - 每循环结束三次添加容器 div

javascript - 隐藏 div 也会隐藏父 div 的图像