css grid布局中的minmax()函数的使用

minmax函数是作用在项目上的属性,单独将这个属性拿出来记录是因为你minmax的作用非常多,需要一条条分析.
minmax的作用是限制项目的大小在某个范围之间,minmax函数的第一个参数就是最小值,第二个参数是最大值.
minmax函数可以接收的参数:
1.固定长度值(以px为单位)
2.百分比值
3.弹性值
3.min-content
4.max-content
5.auto

使用固定长度minmax()函数使用长度(length)也许是最简单的值,就是一个基本的长度。例如,这有一个简单的一行三列的网格。
在这里插入图片描述
使用minmax()函数,可以指定网格中黄色单元格宽度保持在100px至200px之间。随着浏览器窗口的大小改变,这绝对值将会改变,但总是在这两个范围之内变化。

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

注意这里的代码,当元素被创建时默认长度就是设置的最大值(200px)
2.使用百分比
minmax()函数除了可以使用length单位之外也可以使用百分比单位。如果我们把黄色网格设置了最大值为50%。表示黄色网格最大宽度是网格容器宽度的一半,但最大值不会有小于200px的值。
在这里插入图片描述
无论浏览器视窗缩到多小,黄色网格宽度都不会小于200px。但是,当网格容器有足够的空间时,黄色网格宽度始终都会是容器宽度的一半。
3.弹性长度

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

当元素第一次被创建时容器空间三等分后大于200px时,黄色元素即为容器三分之一;小于200px时黄色元素为固定的200px.
4.max-content

.grid { display: grid; grid-template-columns: minmax(max-content, max-content) 1fr 1fr; }

max-content代表当项目中有文字时,宽度为恰好容纳文字.
5.min-content
min-content关键词和max-content一样,是一种特殊的值。它代表单元格最小宽度,可以不让内容溢出单元格,除非是不可避免的。

.grid { display: grid; grid-template-columns: minmax(min-content, min-content) 1fr 1fr; }

在这里插入图片描述
6.auto
最后介绍auto值。minmax()函数的最小值和最大值使用auto,将会有不同的含义,其含义也取决于minmax()函数的最小值和最大值。

如果用于最大值,那么auto值相当于max-content值;如果用于最小值,那么auto值相当于min-content。最大的最小尺寸不同于min-content,它通过min-width或min-height来指定。

为了说明这一点,下面的的示例中,黄色的网格单元格使用minmax()函数,并且最小值和最大值都设置auto。

.grid { display: grid; grid-template-columns: minmax(auto, auto) 1fr 1fr; }

在这里插入图片描述
原文链接:https://www.w3cplus.com/css3/how-the-minmax-function-works.html

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
grid布局CSS3新增的一种布局方式,它是基于网格的布局方式,能够更加灵活地控制网页的布局和排版。 grid布局有以下几个重要的属性: 1. display:指定元素使用grid布局,取值为grid或inline-grid。 2. grid-template-rows和grid-template-columns:分别用来定义网格的行和列,可以使用固定的长度值、百分比、fr单位或者auto等值,以及repeat()函数minmax()函数。 3. grid-template-areas:按照名称给网格区域命名,方便后续使用grid-area属性指定元素所在的网格区域。 4. grid-gap:指定网格之间的间隔,可以使用长度值或百分比。 5. grid-auto-rows和grid-auto-columns:用来定义在没有指定行或列的情况下新元素所占据的网格大小。 6. grid-auto-flow:用来指定新元素的放置方式,取值为row、column、dense等。 7. grid-row-start、grid-row-end、grid-column-start和grid-column-end:用来指定元素所占据的网格区域的起始行、结束行、起始列和结束列。 8. grid-area:同时定义元素所占据的网格区域的起始行、结束行、起始列和结束列,以及网格区域的名称。 使用grid布局需要注意以下几点: 1. 容器必须设置display属性为grid或inline-grid。 2. 网格的行和列必须先定义好,才能将元素放入网格。 3. 如果没有指定元素所在的网格区域,则会自动放置在下一个可用的网格区域。 4. 可以通过grid-template-areas属性将网格区域进行命名,并通过grid-area属性指定元素所在的网格区域。 5. 使用grid布局时,需要考虑兼容性问题,可以使用autoprefixer等工具自动添加浏览器前缀。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值