nth-child:如何选择两个一组的元素

时间:2017-04-18 23:33:19

标签: css css-selectors

假设我有一张这样的表:

 <div class="fc-slats">
  <table>
    <tbody>
      <tr>
        <td class="fc-widget-content fc-major">16</td>
        <td class="fc-widget-content fc-minor">16</td>
        <td class="fc-widget-content fc-major">17</td>
        <td class="fc-widget-content fc-major">17</td>
        <td class="fc-widget-content fc-major">18</td>
        <td class="fc-widget-content fc-minor">18</td>
      </tr>
    </tbody>
  </table>
  </div>

我希望第一和第二个细胞有一种颜色,第三和第四个细胞有另一种颜色,第五和第六个细胞有第一种颜色......换句话说,它是旧的奇数 - 偶数交替配色方案,每组除两个细胞外。

我正在尝试使用CSS的nth-child选择器执行此操作:

fc-slats td:nth-child(int(n/2)) {
  background-color: red;
}

但我不知道如何写出“nth-child”选择器的公式。我想CSS不支持像int那样的数学函数,或if... then之类的条件,所以在这种情况下,我将如何实现这一点?

编辑:为了简洁起见,我在这个表中添加了6个单元格,但假设表格具有任意长度;换句话说,我正在寻找一种“通用”解决方案。

2 个答案:

答案 0 :(得分:5)

您可以选择每隔四分之一td及其前一个兄弟nth-child(4n)nth-child(4n - 1)

td {
  background: blue;
}

td:nth-child(4n), td:nth-child(4n - 1) {
  background: red;
}
 <div class="fc-slats">
  <table>
    <tbody>
      <tr>
        <td class="fc-widget-content fc-major">16</td>
        <td class="fc-widget-content fc-minor">16</td>
        <td class="fc-widget-content fc-major">17</td>
        <td class="fc-widget-content fc-major">17</td>
        <td class="fc-widget-content fc-major">18</td>
        <td class="fc-widget-content fc-minor">18</td>
      </tr>
    </tbody>
  </table>
  </div>

答案 1 :(得分:0)

import caffe
import numpy as np

class transpose(caffe.Layer):

    def setup(self, bottom, top):
        assert len(bottom) == 1,            'requires a single layer.bottom'
        assert bottom[0].data.ndim == 2,    'requires matrix data'
        assert len(top) == 1,               'requires a single layer.top'

    def reshape(self, bottom, top):
        top[0].reshape((bottom[0].data.shape[1], bottom[0].data.shape[0]))

    def forward(self, bottom, top):
        top[0].data = np.transpose(bottom[0].data)

    def backward(self, top, propagate_down, bottom):
        pass

https://jsfiddle.net/2nLtgd9z/

已经在StackOverflow上回答过,首先进行研究:nth-child to alternate by 2 rows