gpt4 book ai didi

css - 可以使用 CSS :nth-child (or similar) to select batches of elements in HTML, 例如每隔 4 个节点吗?

转载 作者:技术小花猫 更新时间:2023-10-29 11:03:26 25 4
gpt4 key购买 nike

背景知识:我正在尝试实现一种布局,其中元素在一行上从左到右流动,然后在下一行从右到左流动,依此类推。我在 CodePen 中模拟了一些东西,看看这里(它比我解释得更好!)

我已经使用 nth-child 实现了上述示例,但它是“硬编码”的,例如

HTML:

<ul>
<li>1</li>
<li>2</li>
...
<li>16</li>
</ul>

CSS:

li { float: left; }

li:nth-child(5),
li:nth-child(6),
li:nth-child(7),
li:nth-child(8) {
float: right;
}

现在,这可行,但它显然仅限于特定数量的元素(我在 CSS 中放入了多少!)。我知道我可以执行 :nth-child(4n) 来获取每四个元素,但我希望能够选择 接下来的 4 个元素。这几乎就像 nth-child(odd),但对于 4 个元素的组。

有没有办法以编程方式执行此操作?我看过调整数量查询 ( http://alistapart.com/article/quantity-queries-for-css ),但这似乎不是我想要的......

非常感谢任何帮助!!

最佳答案

是的,您可以使用一组 nth-child选择器就像下面的代码片段一样,可以根据模式选择一组重复的元素。

需要注意的一件事是,选择每第 4 个元素及其之后的下 4 个元素相当于选择第 4 个元素之后的所有元素,因此我将样本限制为仅接下来的 2 个元素。


选择器说明(选择第 4、5、8、9 等元素等):

  • nth-child(4n+4) - 选择第 4 (4*0 + 4)、第 8 (4*1 + 4)、第 12 (4*2 +4) 个元素
  • nth-child(4n+5) - 选择第 5 (4*0 + 5)、第 9 (4*1 + 5)、第 13 (4*2 + 5) 个元素。

从解释中可以看出,该系列从第4个元素开始,并从那时开始重复。如果您需要从第一个元素(例如第一个、第二个、第五个、第六个等)开始的系列,那么您可以使用选择器组作为 div:nth-child(4n+1), div:nth-child(4n+2) .

div:nth-child(4n+4), div:nth-child(4n+5){
color: red;
}
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
<div>5</div>
<div>6</div>
<div>7</div>
<div>8</div>
<div>9</div>
<div>10</div>
<div>11</div>
<div>12</div>
<div>13</div>
<div>14</div>
<div>15</div>
<div>16</div>


选择器说明(选择第4、5、12、13个元素等):

  • nth-child(8n+4) - 选择第 4 (8*0 + 4)、第 12 (8*1 + 4)、第 20 (8*2 +4) 个元素
  • nth-child(8n+5) - 选择第 5 (8*0 + 5)、第 13 (8*1 + 5)、第 21 (8*2 + 5) 个元素。

从解释中可以看出,该系列从第4个元素开始,并从那时开始重复。如果您需要从第一个元素(例如第一个、第二个、第五个、第六个等)开始的系列,那么您可以使用选择器组作为 div:nth-child(4n+1), div:nth-child(4n+2) .

div:nth-child(8n+4), div:nth-child(8n+5){
color: red;
}
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
<div>5</div>
<div>6</div>
<div>7</div>
<div>8</div>
<div>9</div>
<div>10</div>
<div>11</div>
<div>12</div>
<div>13</div>
<div>14</div>
<div>15</div>
<div>16</div>
<div>17</div>
<div>18</div>
<div>19</div>
<div>20</div>
<div>21</div>
<div>22</div>
<div>23</div>

关于css - 可以使用 CSS :nth-child (or similar) to select batches of elements in HTML, 例如每隔 4 个节点吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32474786/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com