html - 重置 CSS :nth-of-type counter

标签 html css css-selectors

我正在使用 WP 事件插件,它以下列格式创建事件列表:-

.event-list .event {
    float: left;
    width: 30%;
    margin-left: 0;
    background: #eee;
}

span.month {
  width: 100%;
  border-bottom: solid 1px black;
  display: block;
  clear: both;
}

.event-list div.event:nth-of-type(3n){
margin-left:5%;
}

.event-list div.event:nth-of-type(3n+1){
margin-left: 0;
clear: both;
}

.event-list div.event:nth-of-type(3n+2){
margin-left:5%;
}
<div class="event-list">
<span class="month">January</span>
<div class="event">Event 1</div>
<div class="event">Event 2</div>
<div class="event">Event 3</div>
<div class="event">Event 4</div>
<span class="month">February</span>
<div class="event">Event 5</div>
<div class="event">Event 6</div>
<div class="event">Event 7</div>
<div class="event">Event 8</div>
<div class="event">Event 9</div>
<div class="event">Event 10</div>
</div>

我希望第 n 个类型的计数器在每个 span 元素之后重置,以便无论当月的事件数量如何,列都可以正常工作。我尝试过使用波浪号 ~ 选择器(如此处建议的那样 Excluding an element from nth-child pattern http://jsfiddle.net/jWxb6/11/ ),但我终生无法让它发挥作用。如果可以的话,我想在不使用 JS/JQuery 的情况下做到这一点,但如果没有纯 CSS 解决方案,那也是一种选择。

最佳答案

为什么不考虑采用更简单的方法来实现这一目标。这是使用 flexbox 的想法,不需要使用复杂的选择器,因为你想要做的事情在你的实际 HTML 结构中是不可能的。

.event-list {
  display: flex;
  flex-wrap:wrap;
  justify-content:space-between;
}

.event-list .event {
  width: 30%;
  margin-left: 0;
  background: #eee;
}

span.month {
  width: 100%;
  border-bottom: solid 1px black;
}
<div class="event-list">
  <span class="month">January</span>
  <div class="event">Event 1</div>
  <div class="event">Event 2</div>
  <div class="event">Event 3</div>
  <div class="event">Event 4</div>
  <span class="month">February</span>
  <div class="event">Event 5</div>
  <div class="event">Event 6</div>
  <div class="event">Event 7</div>
  <div class="event">Event 8</div>
  <div class="event">Event 9</div>
  <div class="event">Event 10</div>
</div>

关于html - 重置 CSS :nth-of-type counter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50454489/

相关文章:

javascript - 在 Bootstrap 模式中使特定的 div 背景透明

javascript - 如何在循环中添加上一个/下一个按钮?

html - 如何在 HTML 中的两个元素之间添加一个元素

javascript - 在搜索兄弟时使用 CSS 选择器而不是 XPath 定位器

javascript - SVG - 在没有图像填充的情况下以圆形为中心的图像

jquery - LI 标签内的 block 级元素导致 LI 标签比它的子内容高。这可以避免吗?

html - float DIV 适合另一个 DIV

html - 如何让 CSS 选择以字符串开头的 ID(不是在 Javascript 中)?

html - 双点 CSS 选择器?

javascript - 检查所选文本是否在给定的 CSS 类中?