- From: Óscar Otero via GitHub <sysbot+gh@w3.org>
- Date: Fri, 11 Aug 2023 18:26:28 +0000
- To: public-css-archive@w3.org
oscarotero has just created a new issue for https://github.com/w3c/csswg-drafts:
== [feature-request] grid-template-width and grid-template-height ==
The total size of the grid template depends on different things. For example, if all columns have fixed sizes, the template grid is the sum of all columns:
```css
.grid {
display: grid;
grid-template-columns: 250px 250px; /* This creates a template 500px wide */
}
```
If some columns use `fr` units, the grid will take all available space, so the total width is the same as the element width:
```css
.grid {
display: grid;
width: 500px;
grid-template-columns: repeat(2, 1fr); /* This creates a template with the same width as the .grid element (500px) */
}
```
Sometimes we want to create a flexible grid, using `fr` values, but without taking all available space. Let's see the following example:

This is a website where the content takes a maximum width of 1400px. To create this grid, we need two elements, one for the green background and other to distribute the elements:
```html
<style>
.background {
background-color: #00BD79;
}
.grid {
max-width: 1400px;
margin: auto;
display: grid;
grid-template-columns: repeat(auto-fit, minmax(400px, 1fr));
gap: 20px;
}
</style>
<div class="background">
<div class="grid">
<!-- grid elements here -->
</div>
</div>
```
It would be great if this could be done with only one element using the new property `grid-template-width` to limit the total width of the grid:
```html
<style>
.grid {
background-color: #00BD79;
display: grid;
grid-template-columns: repeat(auto-fit, minmax(400px, 1fr));
grid-template-width: min(100%, 1400px); /* Limit the grid total width */
justify-content: center; /* To center the grid in the element */
gap: 20px;
}
</style>
<div class="grid">
<!-- grid elements here -->
</div>
```
The `grid-template-height` property would have the same behavior but applied to the height of the grid.
In case of conflict with the values of grid-template-columns, or grid-template-rows, these values always win. For example:
```css
.grid {
display: grid;
grid-template-columns: 500px 500px; /* The template width is 1000px */
grid-template-width: 800px /* The template width remains 1000px because it's not possible to shrink the two 500px wide columns */
}
```
Please view or discuss this issue at https://github.com/w3c/csswg-drafts/issues/9182 using your GitHub account
--
Sent via github-notify-ml as configured in https://github.com/w3c/github-notify-ml-config
Received on Friday, 11 August 2023 18:26:29 UTC