CSS minmax(): 优先考虑最大值
CSS minmax(): prioritize max value
minmax:
If max < min, then max is ignored and minmax(min,max) is treated as min..
我想做类似
的事情
grid-template-columns: 1fr minmax(50%, 70vmin) 1fr;
我不希望列超过 70vmin
。根据规范,在 70vmin
恰好小于 50%
的情况下,它选择 50%
作为列大小,这是我不想要的。是否有可能以某种方式反转这种行为?
根据定义,这就是 minmax()
的作用。所以尝试另一种方法。
而不是这个:
grid-container {
grid-template-columns: 1fr minmax(50%, 70vmin) 1fr
}
考虑一下:
grid-container {
grid-template-columns: 1fr auto 1fr
}
grid-item {
max-width: 70vmin;
min-width: 50%;
}
你要找的是width
/max-width
这样的组合:
width:50%;
max-width:70vmin;
- 如果
70vmin > 50%
那么我们将至少有50%
(我们的最小边界)并且我们不会超过70vmin
- if
70vmin < 50%
那么我们的宽度将等于 70vmin(我们的最大
抑制最小值的边界)
您可以使用简单的 div 和 margin:auto
来实现。不需要网格:
.grid-item {
max-width: 70vmin;
width: 50%;
height: 50px;
margin:auto;
background: red;
};
<div class="grid-item"></div>
在上面的示例中,我们将宽度固定为 50%,因此从技术上讲它不会更大。如果你想在 70vmin
也更大的情况下大于 50%,你可以尝试以下组合:
.grid-container {
display:flex;
justify-content:center;
margin:20px 0;
}
.grid-item {
max-width: 70vmin;
flex-basis:50%;
height: 50px;
background: red;
white-space:nowrap;
}
<div class="grid-container">
<div class="grid-item"> some text</div>
</div>
<div class="grid-container">
<div class="grid-item"> some text some text some text some text some text some text some text some text some text</div>
</div>
我们使用 flex-basis 设置初始宽度至少为 50%
,我们固定 max-width
并且内容可以使元素在 50%
和 [= 之间增长19=]
minmax: If max < min, then max is ignored and minmax(min,max) is treated as min..
我想做类似
的事情grid-template-columns: 1fr minmax(50%, 70vmin) 1fr;
我不希望列超过 70vmin
。根据规范,在 70vmin
恰好小于 50%
的情况下,它选择 50%
作为列大小,这是我不想要的。是否有可能以某种方式反转这种行为?
根据定义,这就是 minmax()
的作用。所以尝试另一种方法。
而不是这个:
grid-container {
grid-template-columns: 1fr minmax(50%, 70vmin) 1fr
}
考虑一下:
grid-container {
grid-template-columns: 1fr auto 1fr
}
grid-item {
max-width: 70vmin;
min-width: 50%;
}
你要找的是width
/max-width
这样的组合:
width:50%;
max-width:70vmin;
- 如果
70vmin > 50%
那么我们将至少有50%
(我们的最小边界)并且我们不会超过70vmin
- if
70vmin < 50%
那么我们的宽度将等于 70vmin(我们的最大 抑制最小值的边界)
您可以使用简单的 div 和 margin:auto
来实现。不需要网格:
.grid-item {
max-width: 70vmin;
width: 50%;
height: 50px;
margin:auto;
background: red;
};
<div class="grid-item"></div>
在上面的示例中,我们将宽度固定为 50%,因此从技术上讲它不会更大。如果你想在 70vmin
也更大的情况下大于 50%,你可以尝试以下组合:
.grid-container {
display:flex;
justify-content:center;
margin:20px 0;
}
.grid-item {
max-width: 70vmin;
flex-basis:50%;
height: 50px;
background: red;
white-space:nowrap;
}
<div class="grid-container">
<div class="grid-item"> some text</div>
</div>
<div class="grid-container">
<div class="grid-item"> some text some text some text some text some text some text some text some text some text</div>
</div>
我们使用 flex-basis 设置初始宽度至少为 50%
,我们固定 max-width
并且内容可以使元素在 50%
和 [= 之间增长19=]