【发布时间】:2022-01-20 02:26:21
【问题描述】:
我有这个问题,我需要对 div 应用一些样式,只有当它位于可见项目旁边时(即使中间有不可见项目,但如果当前项目后面的所有项目都是不可见的,则不需要),如图所示:
https://stackblitz.com/edit/js-3nulnw?file=style.css
.container {
display: flex;
flex-grow: 1;
padding: 5px;
}
.content {
border: 1px solid #000000;
border-radius: 4px;
width: 50%;
padding: 10px;
}
.addon {
width: 10%;
background-color: #ff0000;
border: 1px solid #000000;
border-top-right-radius: 4px;
border-bottom-right-radius: 4px;
border-left: none;
}
.addon.hidden {
display: none;
}
.content:not(:last-child),
.addon:not(:last-child) {
border-right: none;
border-top-right-radius: 0;
border-bottom-right-radius: 0;
}
<div class="container">
<div class="content">This is shown correctly (no addons)</div>
</div>
<div class="container">
<div class="content">This is shown correctly (one addon)</div>
<div class="addon"></div>
</div>
<div class="container">
<div class="content">
This is shown correctly (multiple addons, one is hidden)
</div>
<div class="addon hidden"></div>
<div class="addon"></div>
</div>
<div class="container">
<div class="content">This is shown correctly (multiple addons)</div>
<div class="addon"></div>
<div class="addon"></div>
</div>
<div class="container">
<div class="content">This should have all rounded borders</div>
<div class="addon hidden"></div>
</div>
<div class="container">
<div class="content">This should have all rounded borders</div>
<div class="addon"></div>
<div class="addon hidden"></div>
</div>
我曾尝试在互联网上查找但无济于事,但我可能正在寻找错误的答案(我发现的大部分内容都是其他 SO 问题,说没有用于不可见项目的 CSS 选择器),因此可以使用其他方法这样做是受欢迎的(可能没有 JS)
【问题讨论】:
-
请在您的问题中发布相关的 HTML 部分。
-
其他答案都是对的;你需要使用 JS/jQuery 来完成类似的事情,例如
$(element).is(":visible");
标签: html css css-selectors