repeat() 函数基本用法

发布于 2024-09-30 10:31:48 字数 3582 浏览 11 评论 0

CSS repeat() 函数只能作用在 grid-template-columnsgrid-template-rows 这两个 CSS 属性上。

兼容性

row-column37.png

ie 不兼容

repeat() 函数可以同时多个

#container {
  grid-template-columns: repeat(2, 1fr) repeat(2, 2fr) auto;
}

row-column38.png

repeat() 函数支持对网格线命名

#container {
  grid-template-columns: repeat(3, [col-start] 1fr [col-end]) auto;
  /* 但是这就有三个成对的 start 和 end,怎么区分呢? */
}

可以设置 min-content/max-content 关键字

理解 CSS3 max/min-content 及 fit-content 等 width 值

  1. min-content : 最小内容尺寸
    • 中文的最小内容单位是一个汉字,有其他特殊符号的话,就是一个汉字加一个特殊符号的宽度
    • 英文的最小内容单位是单词,有其他特殊符号的话,就是一个单词加一个特殊符号的宽度
    • 最终宽度是所有这些最小内容单元最长的那个单元宽度
  2. max-content : 最大内容宽度 可以理解为文本内容不换行时候的宽度
    <span>父元素上</span>
    <div id="container">
    <div class="item item-1">你是</div>
    <div class="item item-2">2</div>
    <div class="item item-3">peter wang</div>
    <div class="item item-5">peter hu</div>
    <div class="item item-6">5</div>
    <div class="item item-7">是我</div>
    <div class="item item-8">哈,哈</div>
    <div class="item item-9">8</div>
    <div class="item item-9">9</div>
    </div>
    <span>父元素下</span>
    
    #container {
    grid-template-columns: repeat(2, min-content auto max-content) min-content;
    }
    
    row-column39.png

可以设置 minmax() 函数

#container {
  grid-template-columns: repeat(2, minmax(min-content, max-content) 40px) auto;
}

grid-repeat-mixmax.gif

可以设置 fit-content() 函数

尺寸由内容决定,内容越多尺寸越大,但不超过限定的尺寸。

语法

fit-content( [ <length> | <percentage> ] )

可参考 张鑫旭 css-repeat ,但是浏览器兼容性有待考究

auto-fill 关键字

根据 Grid 布局中每一个子项的尺寸自动计算需要填充的数量。
计算规则是,当前列表数量下的总尺寸不会超出 Grid 容器的最大正整数值。

#container {
  grid-template-columns: repeat(auto-fill, minmax(100px, 1fr));
}

上面的效果是把一行分成数量未知的多个列,每一列的宽度相等且最小宽度为 100px。 item 数不足一行的话,用匿名 item 填充,当我们使用 auto-fill 自动填充的时候, repeat() 函数是不能和 auto 一起使用的,例如下面这种写法是无效的:

#container {
  /* 无效 */
  grid-template-columns: repeat(auto-fill, minmax(100px, 1fr)) auto;
}

但是可以和长度只和百分比值一起使用:

#container {
  /* 无效 */
  grid-template-columns: repeat(auto-fill, minmax(100px, 1fr)) 20%;
}

auto-fit 关键字

无论 Grid 容器多宽,子项元素一定是尺寸一定是填满的;当 Grid 容器尺寸没有富余的时候,表现和 auto-fill 是一样的

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

清晰传感

暂无简介

0 文章
0 评论
23 人气
更多

推荐作者

xu362930323

文章 0 评论 0

缱倦旧时光

文章 0 评论 0

qq_eXruk9

文章 0 评论 0

遂心如意

文章 0 评论 0

guojiayue1

文章 0 评论 0

愿与i

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文