У меня есть 2 х 2 CSS-сетки.Каждый элемент сетки кратко описывает услугу (веб-сайт малого бизнеса), и у каждого элемента сетки есть кнопка, чтобы узнать больше об этой услуге.Когда пользователь нажимает одну из четырех кнопок, чтобы узнать больше, я бы хотел, чтобы этот элемент сетки расширился и занял всю сетку 2x2 (это у меня работает), а другие 3 элемента сетки исчезли (с этим у меня возникли проблемы)).Вот пример: https://jsfiddle.net/L7fatdmh/, обратите внимание, что только первый элемент сетки имеет JS, примененный к нему в данный момент.
html:
<div class="grid-squares">
<div class="grid_item" id="g1">
<h2>Service One</h2>
<p>
lorem impsum
</p>
<button id="firstButton">Learn More</button>
</div>
<div class="grid_item">
<h2>Service Two</h2>
<p>
lorem impsum
</p>
<button>Learn More</button>
</div>
<div class="grid_item">
<h2>Service Three</h2>
<p>
lorem impsum
</p>
<button>Learn More</button>
</div>
<div class="grid_item">
<h2>Service Four</h2>
<p>
lorem impsum
</p>
<button>Learn More</button>
</div>
</div>
css:
.grid-squares{
display: grid;
grid-template-columns: 1fr 1fr;
grid-auto-rows: 300px;
}
js:
firstButton = document.getElementById("firstButton");
firstButton.onclick = function(){
squaresGrid = document.getElementsByClassName("grid-squares");
g1 = document.getElementById("g1");
console.log(g1)
g1.style.gridColumn = "1/3";
g1.style.gridRow = "1/3";
}
Как вы можете видеть в примере jsFiddle, сеткаЭлемент расширяется, чтобы заполнить надлежащее пространство, но все остальные элементы сетки все еще видны внизу.Как я могу скрыть это?Первоначально скрывает все grid-item
с, а затем отображает определенный элемент на основе его id
(т.е. g1
в первом элементе сетки) лучший вариант?