我有一个网站,它通过 WYSIWYG 内联编辑器提供可编辑的内容,用户不太可能理解需要将包含 DIV 的类似代码块放在格式化的代码块周围,导致 html 类似于:
<div class="borderBlock">Content...</div>
<div class="borderBlock">Content...</div>
<div>Other content</div>
<div class="borderBlock">Content...</div>
当前的 CSS 如下:
.borderBlock {
margin: 8px 0;
border: 1px solid;
border-radius: 4px;
}
这为每个 div 提供了自己单独的边框 - 并不是想要的,理想情况下,前两个 div 将共享边框和背景颜色!
我知道我可以使用 css,例如:
:not(.borderBlock) + .borderBlock { }
选择类borderBlock的第一个块 - 为块的开头应用格式,类似地:
.borderBlock + :not(.borderBlock)
将选择第一个无边界块元素...但我找不到一种方法来选择块中没有被另一个 div 专门包围的最后一个边界块元素 - 在上面的 html 中使用 :last-child 或 :last- child-of-type 将只选择第四个 div,并且不会将第二个 div 设置为边界块的结尾。同样 :first-child(-of-kind) 不会设置第二个边框块的样式。
是否有一个不使用 JavaScript 的 CSS 解决方案,并且不涉及在每个所需的边框块周围放置一个包含 div?相当于 CSS 前瞻正则表达式而不是标准 CSS 后视样式的东西。