Let's consider example of cards with only subgrid feature.
body {
max-width: 500px;
margin: 1rem auto;
}
.container {
display: grid;
grid-template-columns: 2fr 1fr;
grid-gap: 1rem;
}
.card {
border: 1px solid #ccc;
padding: 1rem;
display: grid;
grid-gap: 1rem;
grid-row: span 3;
grid-template-rows: subgrid;
}
<div class="container">
<div class="card">
<h2>Title Similique quisquam nesciunt</h2>
<p>
Body Lorem ipsum dolor sit, amet consectetur adipisicing elit. Similique quisquam nesciunt nihil totam laborum corporis animi expedita molestias, accusantium amet libero at neque id voluptatum, numquam, natus blanditiis eos sit!
</p>
<p>Footer nesciunt nihil</p>
</div>
<div class="card">
<h2>Title accusantium amet libero at neque</h2>
<p>
Body Lorem, ipsum dolor sit amet consectetur adipisicing elit. Quisquam minima ducimus numquam deleniti perspiciatis expedita nam commodi laboriosam illo! Blanditiis in dolorem eius. Hic assumenda architecto quidem magnam?
</p>
<p>Footer dolor sit amet consectetur adipisicing elit</p>
</div>
</div>
This generates perfectly what I want (title, body and footer are align vertically):
Codesanbox for first implementation (https://codesandbox.io/s/silent-voice-cklrms), at time of 23.07.2023 I suggest to open it in Chrome Canary or Firefox.
Problem
When I try to add to my example CSS @container query I don't know how to keep the previous functionality of subgrid.
Consider this modification to HTML, addition of .card-outer-wrapper
, reference why I had to add this wrapper:
body {
max-width: 500px;
margin: 1rem auto;
}
.container {
display: grid;
grid-template-columns: 2fr 1fr;
grid-gap: 1rem;
}
.card {
border: 1px solid #ccc;
padding: 1rem;
display: grid;
grid-gap: 1rem;
grid-row: span 3;
grid-template-rows: subgrid;
}
.card-outer-wrapper {
container-type: inline-size;
}
@container (min-width: 300px) {
.card {
background-color: aqua;
}
}
<div class="container">
<div class="card-outer-wrapper">
<div class="card">
<h2>Title Similique quisquam nesciunt</h2>
<p>
Body Lorem ipsum dolor sit, amet consectetur adipisicing elit. Similique quisquam nesciunt nihil totam laborum corporis animi expedita molestias, accusantium amet libero at neque id voluptatum, numquam, natus blanditiis eos sit!
</p>
<p>Footer nesciunt nihil</p>
</div>
</div>
<div class="card-outer-wrapper">
<div class="card">
<h2>Title accusantium amet libero at neque</h2>
<p>
Body Lorem, ipsum dolor sit amet consectetur adipisicing elit. Quisquam minima ducimus numquam deleniti perspiciatis expedita nam commodi laboriosam illo! Blanditiis in dolorem eius. Hic assumenda architecto quidem magnam?
</p>
<p>Footer dolor sit amet consectetur adipisicing elit</p>
</div>
</div>
</div>
It properly shows background color on wider card but it lacks of subgrid functionality:
Here is code sandbox for second example: https://codesandbox.io/s/nifty-feynman-n42s5p
Question
How to modify my second example to achieve subgrid alignment and @container query together?