How can I set the width and max-width of a CSS Grid Column?
One way to do this might be declare:
.container {grid-template-columns: 250px 480px auto;}
as your standard rule.
Then, after considering the narrowest width you would like to apply to your third column, you can apply a @media
query.
Let's say you want to ensure your third column is no narrower than 100px
.
250px + 480px + 100px = 830px
So you need to write a @media
query for 830px
:
@media only screen and (max-width: 830px) {
.container {grid-template-columns: 17.5% 31.25% auto;}
}
Working Example:
body {
margin: 0;
padding: 0;
}
.container {
display: grid;
grid-template-columns: 250px 480px auto;
grid-template-rows: 100vh;
grid-gap: 0;
}
.menu {
padding-top: 32px;
background: linear-gradient(135deg, #837DB5 0%, #364176 100%);
}
.list-view {
background-color: #F5F5FC;
}
@media only screen and (max-width: 830px) {
.container {grid-template-columns: 17.5% 31.25% auto;}
}
<div class="container">
<div class="menu"></div>
<div class="list-view"></div>
<div class="details"></div>
</div>
Limit the width of a column to the width of a particular grid item
Instead of setting the column width to 1fr
, use min-content
.
With min-content
, the column will take all line break (text wrapping) opportunities.
It basically wraps all text until the column reaches the width of the longest word.
.grid-container {
display: grid;
grid-template-columns: min-content; /* formerly 1fr */
}
<div class="grid-container">
<div class="A">
DIV A contains the TITLE
</div>
<div class="B">
DIV B has much more text but I want its text to wrap to the width of div.A (no cut of words, just wrapping)
</div>
</div>
How to set the maximum width of a column in CSS Grid Layout?
"The fit-content function accepts one param, the maximum value. A grid column/row with this property set will still take up as little space as necessary, according to its content, but no more than the maximum value."
See this article: Becoming a CSS Grid Ninja!
You can solve your case while still making use of percentage-based maximums:
div {
outline: 1px dotted gray;
}
.container {
width: 300px;
height: 300px;
display: grid;
grid-template-columns: 1fr fit-content(20%);
}
.container div {
overflow: hidden; /* this needs to be set so that width respects fit-content */
}
<div class="container">
<div>
some content
</div>
<div>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec cursus eu leo ac ultrices. Vivamus ornare, orci sed pretium sollicitudin
</div>
</div>
<div class="container">
<div>
some content
</div>
<div></div>
</div>
Css grid: how to make cell adjust in width?
I actually figured out how to achieve what I was looking for. We can set how many columns an item should span for. So for example if we have an iframe in a grid, perhaps we want it to span for 2 columns oppose to everything else spanning one column. To achieve that, we can create a class like so and then apply this class for iframe element:
.iframe-in-grid {
grid-column: span 2;
}
If you want to make element bigger in terms of height, span it through rows like so:
grid-row: span 2;
Define a css grid that has column width is max of screen width
You could use grid-auto-column set at the viewport width.
Each column will then take on that width and there will be as many columns as there are images (elements in the carousel).
Here's a simple demo:
.container {
display: grid;
grid-auto-columns: 100vw;
grid-auto-flow: column;
}
.container div {
height: 50vh;
}
<div class="container">
<div style="background: red;">1</div>
<div style="background: green;">2</div>
<div style="background: blue;">3</div>
</div>
Limit content width in css grid column
Try to add
overflow: auto
Like this:
.right {
max-width: 100%;
overflow: auto
}
It will fix your trouble!
https://jsfiddle.net/ka54e7u4/2/
Related Topics
CSS Media Type: How to Load CSS for Mobile
Alternative for Nth-Child for Older Ie Browsers
CSS Nth-Child Apply Odd-Even Rule But Switch Every 4 Items
Less Mixin - Output Values Without Quotes
My Z-Index Property Is Not Getting Set
Moving Dotted Border Using CSS
Keep Div Height Relevant to Aspect Ratio
The "Before" Pseudo Element Not Working in Font Awesome V.5
How to Add a CSS Stylesheet in Fxml
How to Avoid One Word on the Last Line with CSS
Flexbox Max-Height Issue with Ie11
How to Do Ie Conditionals in CSS
Bootstrap 3 Grid System Does Not Work Correctly Within a 3Rd Party Styled Div (Kendo)