css - 在 Css 中,我怎样才能同时选择一个子元素?

标签 css css-selectors stylish

大家好,我正在尝试使用 Stylish(Chrome 扩展)在此页面上的一些元素周围放置边框。这是页面的结构,字母代表不同的类..

A
  B
  B
  C
  C

我想在“C”周围放置边框,如果我只是通过调用 C 类来实现,我最终会在两个 C 类之间设置边框。那么有没有一种方法可以将两个 C 一起选择为一个元素。

使用 Stylish,您不能更改页面的 HTML,只能更改 css,我知道我可以将它嵌套在 HTML 中,但这不是一个选项。

编辑:C 也出现在页面的其他区域。

最佳答案

这就是你想要的吗?

.a>.c {
  border: solid red;
  border-width: 0 1px;
}
.a>*:not(.c) + .c,
.a>.c:first-child {
  border-top-width: 1px;
}
.a>.c + *:not(.c) {
  border-top: 1px solid red;
}
.a>.c:last-child {
  border-bottom-width: 1px; 
}
<div class="a">
  <div class="b">B</div>
  <div class="b">B</div>
  <div class="c">C</div>
  <div class="c">C</div>
  <div class="d">D</div>
</div>
<hr />
<div class="a">
  <div class="c">C</div>
  <div class="b">B</div>
  <div class="b">B</div>
  <div class="c">C</div>
  <div class="c">C</div>
  <div class="d">D</div>
</div>
<hr />
<div class="a">
  <div class="a">A</div>
  <div class="b">B</div>
  <div class="b">B</div>
  <div class="c">C</div>
  <div class="c">C</div>
  <div class="d">D</div>
  <div class="c">C</div>
</div>
<hr />
<div class="a">
  <div class="c">C</div>
  <div class="c">C</div>
  <div class="c">C</div>
</div>
<hr />
<div class="a">
  <div class="c">C</div>
</div>

唯一的 “技巧” 是我必须在 .c 之后使用紧随其后的元素的上边框,以便放置 “底部" 一组 .c 中最后一个 .c 的边框。目前无法选择一组具有特定类别的直系 sibling 。当您知道组中带有 .c 的最后一个元素是最后一个元素时,评估的重点是当您评估下一个元素并发现它没有 .c 时。但此时,您无法之前对元素设置样式,因为 CSS 仅向前解析,从不向后解析。

简而言之,如果元素之间有边距,则无法仅使用 CSS(* 请参阅注释)。使用 javascript 会很简单(如果有帮助,我可以提供)。


* 实际上,即使元素之间有边距,您也可以通过 null-ing 之间的边距来完成这项工作。 c 和任何 :not(.c) 并将差异应用于 :not(.c) 的第一个 child 。找到一个在任何情况下都有效的神奇解决方案是很麻烦的。大多数时候,这些东西是根据现有元素编码的,并找到使它“看起来”有效的技巧。
这就是我们现在所拥有的。 :)

关于css - 在 Css 中,我怎样才能同时选择一个子元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42866571/

相关文章:

javascript - fullPage.js 为什么滚动不工作?如果删除任何标签或样式 - 有效

javascript - 通过 javascript 动态设置 css 过滤器

javascript - Ext.js DataGrid 选项卡导航在 RTL 模式下无法正常工作

html - CSS 选择器只选择外部元素

css - 时尚的 css 选择器隐藏除 img 之外的所有内容

css - 如何安装 Firefox "Stylish"css 文件?

css - 不是选择器没有分配给子 div 内的 img

CSS nth-child 悬停问题

html - 使用伪类查找 "a"标签

Google Calendar 的 CSS 在月 View 中自动换行长事件标题