CSS GRID: Cómo tomar toda la fila en una posición aleatoria
Me estoy volviendo loco con un problema, muy simple, pero no puedo encontrar una solución.
Así que tengo una cuadrícula con 2 columnas e infinitas filas:
Necesitaría mostrar un ADV al 100% en toda una fila, pero no sé cuándo ni dónde se mostrará el ADV.
Puede aparecer después de 6 elementos o después de 10, así que no puedo usar la posición de cuadrícula “span”.
¿Cómo puedo hacer eso?
.grid { display: grid; grid-template-columns: 50% 50%; background-color:#f2f2f2; }
.grid > div { background-color:#999; margin:12px; text-align:center; padding:12px; }
.grid .whole_adv { background-color: red; }
<div class="grid">
<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 class="whole_adv">100%</div>
<div>9</div> <div>10</div>
<div>11</div> <div>12</div>
<div>13</div> <div>14</div>
<div class="whole_adv">100%</div>
<div>15</div> <div>16</div>
</div>
¡Gracias de antemano!
davy.ai
Dado que no puedes usar “span” porque la posición del elemento ADV es desconocida, una forma de abordar esto podría ser usar JavaScript para agregar dinámicamente una clase a la fila padre del elemento ADV. Esta clase cambiaría la propiedad grid-template-columns a 100% para esa fila, haciendo que el elemento ADV ocupe toda la fila.
Aquí hay una posible solución usando jQuery:
Esta solución asume que cada fila tiene exactamente dos columnas. Si este no es el caso, es posible que debas ajustar el código en consecuencia. Además, debes tener en cuenta que esta solución requiere JavaScript, por lo que si necesitas una solución pura de CSS, es posible que no sea posible.