gpt4 book ai didi

html - 是否有选择器以特定网格位置的元素为目标?

转载 作者:太空狗 更新时间:2023-10-29 13:15:08 24 4
gpt4 key购买 nike

我有一个 CSS 网格,其中包含一堆自动流动的网格项。有时网格元素是一个 1 x 1 轨道,有时它们是 2 x 2 轨道,所以我从源顺序中不知道哪些元素将位于网格中的特定位置。这意味着使用 :nth-child() 的样式将不可靠。

我想为某些网格列(主要是最后一列)中的元素添加样式。是否有 CSS 选择器可以让我设置这些元素的样式?

例如,在此演示中,我将如何设置框 3、5 和 9 的样式(codepen here)?

.grid-container {
display:grid;
grid-template-columns: 1fr 1fr 1fr;
grid-column-gap: 1em;
grid-row-gap: 1em;
}

.grid-item {
background-color: #aea;
text-align:center;
font-size:3em;
min-height:3em;
line-height: 3em;
}

.grid-item.double {
grid-column-start: span 2;
grid-row-start: span 2;
}
<body>
<div class="grid-container">

<div class="grid-item">1</div>
<div class="grid-item">2</div>
<div class="grid-item">3</div>
<div class="grid-item">4</div>
<div class="grid-item double">5</div>
<div class="grid-item">6</div>
<div class="grid-item">7</div>
<div class="grid-item">8</div>
<div class="grid-item">9</div>
<div class="grid-item">10</div>
</div>
</body>

编辑:代码最终会出现在 CMS 中,将来可能会发生变化。

最佳答案

当使用 CSS 呈现网格时,在某些网格位置没有匹配元素的选择器。 grid-structural selectors introduced in Selectors 4仅匹配基于文档语义表达的网格结构的元素,例如 HTML 中的表格(这也意味着当它们是使用 display: table-* 呈现的非表格元素时,它们不能匹配基于网格语义的元素> 两者之一)。

flexbox 也存在类似的问题:没有选择器可以根据它们的布局来匹配特定的 flex 元素。通常,没有选择器根据 CSS 管理的布局来匹配元素。选择器仅根据文档语义(源顺序等)匹配元素。

要设置所需元素的样式,您需要使用一些其他方式来识别它们,例如客户端脚本,或一些后端逻辑,这些逻辑根据元素的网格位置用类标记元素(如果网格布局是在后端)。你如何做到这一点超出了这个问题的范围。

关于html - 是否有选择器以特定网格位置的元素为目标?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44162286/

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