当前位置: 首页 > 知识库问答 >
问题:

Make`minmax`取`px`或`fr`max值中较小的一个

干宏邈
2023-03-14

我正在尝试制作一个侧边栏,它的最小宽度为200px,最大宽度为3fr300px中较小的一个,并且希望它能够趋向于最小的值。与我想要的最接近的行为是minmax(200px,3fr),但是3fr将继续增长到300px以上。我想我想要的是minmax(3fr,300px),但是fr不允许作为minmax的第一个参数。有没有一种方法可以在没有媒体查询的情况下做到这一点?

null

.grid {
  display: grid;
  grid-template-columns: minmax(200px, 3fr) 9fr; // this is what I want up till c. 1200px wide
  // grid-template-columns: minmax(200px, 300px) 9fr; // this makes the sidebar too wide until c. 1200px wide
  height: 100vh;
}

.sidebar {
  background: hotpink;
}

.main {
  background: dodgerblue;
}
<div class="grid">
  <div class="sidebar">Lorem ipsum dolor sit, amet consectetur adipisicing elit. Amet vitae quae nostrum quisquam eveniet laboriosam iste repudiandae provident saepe minima, modi nesciunt accusamus, quia inventore ratione quo beatae consectetur sapiente?</div>
  <div class="main"><p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Illum voluptas velit doloribus ipsam, nesciunt quibusdam veniam aut quas qui, mollitia laudantium enim explicabo eaque tenetur? Labore quibusdam maiores dolorem exercitationem!</p>
  <p>Ex adipisci aperiam voluptas veritatis aspernatur perspiciatis nihil impedit blanditiis neque aliquam nemo minima at, voluptates facere. Dicta exercitationem explicabo quasi ea facilis iusto, laudantium quibusdam veritatis animi provident culpa!</p>
  <p>Aut magni soluta amet eveniet quaerat in dignissimos mollitia accusantium architecto repellendus minima quos porro accusamus saepe consectetur corporis numquam, reprehenderit nulla enim fugiat. Illo ipsa mollitia aliquam enim illum?</p>
  <p>Odio rem minus accusamus deleniti, laboriosam voluptates dicta quia. Dolores nostrum voluptates eius odio aut maiores! Repellat nisi dolor laborum aspernatur ipsam? Quam quos hic est beatae blanditiis error sapiente?</p>
  <p>Perspiciatis nostrum iusto delectus modi excepturi facere quisquam, cupiditate animi ducimus? Numquam, labore officia, ad sapiente quo quos tempora minima repudiandae perspiciatis facere ullam, distinctio molestias expedita magni dolore dolores?</p>
  <p>Laudantium quos at adipisci! Doloribus obcaecati nulla, voluptates repellat impedit sed libero nam debitis ad cum molestias adipisci illum modi laborum? Sit vero corporis adipisci dolore repellendus alias soluta quam!</p></div>
</div>

null

共有1个答案

卫财
2023-03-14

fr单元实际上并不表示长度。它表示剩余空间。

所以说你想要pxfr中较小的一个,就像苹果和橘子一样。

在呈现所有实际长度之前,无法确定fr

您可以使用容器级别的minmax()和项级别的min-width/max-width组合来解决这一问题。

例如:

与我想要的最接近的行为是minmax(200px,3fr),但是3fr将继续增长到300px以上。

那么:

.grid {
   display: grid;
   grid-template-columns: minmax(200px, 3fr) 9fr;
}

.sidebar {
   max-width: 300px;
}
 类似资料:
  • 问题内容: 我试图设置的和有趣的是,结果是网格行扩展到的最大,而不是分钟。 我们如何才能使网格行保持在最小声明的大小,然后又添加更多内容-网格行将扩展到最大声明的大小,而不是更多? 这是一个例子: 问题答案: 很明显,主要的浏览器默认使用该函数中的值。 规范定义尚不清楚这是怎么回事- 还是默认?–应处理: 定义一个大于或等于 min 且小于或等于 max 的大小范围。 如果 max <min,则将

  • 问题内容: 我正在设计一个新网站,希望它与尽可能多的浏览器和浏览器设置兼容。我试图确定我应该使用哪种度量单位来显示字体和元素的大小,但无法找到一个确定的答案。 我的问题是:我应该 在CSS中使用还是在CSS中使用? 到目前为止,我知道使用与在浏览器中调整基本字体大小的用户不兼容。 我忽略了s,因为与s 相比,它们在级联时更加麻烦。 有人说s与分辨率无关,因此更可取。但是其他人则说,大多数现代浏览器

  • 问题内容: 给出以下表1: 和Table2包含一些RefID和intVals,例如 需要SQL语句来获取每个RefID和NULL的下一个更大的intValue(如果在表1中找不到),则以下是预期结果 帮助将不胜感激! 问题答案: 派生表从给定的表1和表2检索最小值。外部查询仅检索someValue。 这是带有现场测试的Sql Fiddle。

  • 问题内容: 我正在用Javascript和HTML制作RTS游戏。我知道听起来有些野心勃勃,但我不打算为这里的明星而射击。只是让我感到高兴的一些事情。 我目前正在游戏的运动部分。我的运动引擎应该可以工作,但是有问题。在我的脚本中,我使用不等式语句(和)将绝对定位字符的当前左值和上限值与目标(可能正在移动)的目标值进行比较。问题是我得到的反馈形式是字符串(例如)而不是数字(例如),因此比较不起作用。

  • 问题内容: 好的,这是我的查询: 当它提取数据时,我得到了video_id的正确行,但它为其他每个类别都提取了第一行。因此,当我得到类别1的video_id的最大结果时,我得到了最大ID,但表的第一行是url,日期,标题和说明。 如何获取与最大ID结果相对应的其他列? 编辑:固定。 问题答案: 我会尝试这样的事情: 这比您自己的解决方案要快得多

  • 问题内容: 我有两个如图所示- 和。我正在对它们进行比较,并从两者中找到唯一值和重复值,如下代码所示: 我得到的是正确的,但是我没有得到唯一的值。 问题答案: 您将忽略条件,而是询问一个 列表 是否包含另一个 列表 。 您可以这样做: 不过,我不会真正称这些“独特”或“重复”的物品-这些物品通常是关于 一个收藏 夹中的物品的。这只是测试一个列表中的每个项目是否在另一个列表中。我会说,在这种情况下,