”工欲善其事,必先利其器。“—孔子《论语.录灵公》
首页 > 编程 > CSS 网格:维度关键字

CSS 网格:维度关键字

发布于2024-08-02
浏览:387

注:我刚刚翻译了下面的文字并将其发布在这里。参考文献在本文末尾。

你好。今天我想谈谈一些特殊的 CSS 网格关键字,它们对于定义网格轨道的大小很有用。使用这些关键字的能力将使您能够精确确定所需的网格轨道尺寸。那么,我们走吧。

这篇文章是我介绍 CSS Grid 系列的一部分。如果您想查看我以前的帖子,可以在这里找到完整的目录。

介绍尺寸关键字

当谈到CSS网格时,只有三个关键字可以用来确定轨道的大小。这些关键字是 auto、min-content 和 max-content。所有这些都可以在 CSS 属性 grid-template-colums 和 grid-template-rows 中使用。

最小内容和最大内容

如果您想让网格轨道的大小取决于其内容,则必须使用两个关键字之一:min-content 或 max-content。 最小内容网格轨道将尝试保持最小大小而不溢出其内容。 最大内容网格轨道 但是,假定可扩展的可用空间是无限的,并假定内容的理想宽度。

让我向您展示一些示例,显示所提到的关键字之间的差异。请记住,每个图像包含两个容器:左侧带有 min-content 网格列 的容器,右侧带有 max-content 网格列 的容器。

CSS Grid: keywords de dimensionamento

正如您在此处看到的,最小内容列和最大内容列之间的大小没有差异。原因是图像有其“默认固定大小”,除非您明确告诉它更改,否则该图像不会更改。另一方面,文本的内容可以根据情况“压缩”其大小。这种压缩是使用文本换行(文本换行)来完成的,即单个单词不换行。知道了这一点,让我们用一些文本替换上面示例中的图像。

CSS Grid: keywords de dimensionamento

这次,列宽不同。列 min-content 强制其文本内容“换行”,而列 max-content 扩展得太多,以至于不需要文本换行。请注意,列 min-content 与最长单词的宽度相同,并且列 max-content 现在比容器本身更宽。

当一列包含多个内容类型时会发生什么?以下是包含图像和文本的列的示例。

CSS Grid: keywords de dimensionamento

在这两种情况下,最宽的元素决定列的大小。对于 min-content,该元素是图像或最长的单词。对于列 max-width,这是图像或整个文本。请注意两种内容类型如何在列中垂直分隔。我想在我以后的一篇文章中讨论这种行为。

关键字自动

关键字auto与我在前两篇文章中描述的单元fr有关。它同样确定网格轨道必须“填充”给定轴上的所有可用空间。

.container {
    /** ... **/
    grid-template-columns: auto auto;
}

CSS Grid: keywords de dimensionamento

但是,auto 关键字和 fr 单位之间有两个主要区别。首先,关键字 auto 不是一个单位,因此您不能像使用 fr 那样将其与数值(例如 2auto)一起使用。其次,当两者一起使用时,关键字 auto 总是会“输掉”单位 fr。请参阅下面的示例。

.container {
    /** ... **/
    grid-template-columns: auto 1fr;
}

CSS Grid: keywords de dimensionamento

您可以期望 auto 列在水平维度上“填充”与 fr 列等量的空间。然而,列 fr 的存在会导致该列自动“缩小”其大小以适应当前内容的大小。

请注意,对于文本内容,自动网格轨道的行为与最小内容/最大内容网格轨道不同。当 auto 与 fr 混合时,auto-track 永远不会强制文本内容“换行”,除非自动跟踪“填充”所有可用空间。

.container {
    /** ... **/
    width: 200px;
    grid-template-columns: auto 1fr;
}

CSS Grid: keywords de dimensionamento

感谢您阅读这篇短文。如果您想阅读更多这样的内容,请关注我的 dev.to 或 Twitter 帐户。另外,请随时给我任何反馈。我很想阅读您的评论。我们下一篇文章再见!

PS。如果您想支持我的工作,请给我一杯咖啡,我将不胜感激。谢谢。 ❤️

CSS Grid: keywords de dimensionamento

来源

文章作者:Mateusz Kirmuć.

版本声明 本文转载于:https://dev.to/dougsource/css-grid-keywords-de-dimensionamento-31o3?1如有侵犯,请联系[email protected]删除
最新教程 更多>
  • 为什么PHP的DateTime :: Modify('+1个月')会产生意外的结果?
    为什么PHP的DateTime :: Modify('+1个月')会产生意外的结果?
    使用php dateTime修改月份:发现预期的行为在使用PHP的DateTime类时,添加或减去几个月可能并不总是会产生预期的结果。正如文档所警告的那样,“当心”这些操作的“不像看起来那样直观。 ; $ date->修改('1个月'); //前进1个月 echo $ date->...
    编程 发布于2025-07-13
  • Java数组中元素位置查找技巧
    Java数组中元素位置查找技巧
    在Java数组中检索元素的位置 利用Java的反射API将数组转换为列表中,允许您使用indexof方法。 (primitives)(链接到Mishax的解决方案) 用于排序阵列的数组此方法此方法返回元素的索引,如果发现了元素的索引,或一个负值,指示应放置元素的插入点。
    编程 发布于2025-07-13
  • 如何避免Go语言切片时的内存泄漏?
    如何避免Go语言切片时的内存泄漏?
    ,a [j:] ...虽然通常有效,但如果使用指针,可能会导致内存泄漏。这是因为原始的备份阵列保持完整,这意味着新切片外部指针引用的任何对象仍然可能占据内存。 copy(a [i:] 对于k,n:= len(a)-j i,len(a); k
    编程 发布于2025-07-13
  • Python读取CSV文件UnicodeDecodeError终极解决方法
    Python读取CSV文件UnicodeDecodeError终极解决方法
    在试图使用已内置的CSV模块读取Python中时,CSV文件中的Unicode Decode Decode Decode Decode decode Error读取,您可能会遇到错误的错误:无法解码字节 在位置2-3中:截断\ uxxxxxxxx逃脱当CSV文件包含特殊字符或Unicode的路径逃...
    编程 发布于2025-07-13
  • Java的Map.Entry和SimpleEntry如何简化键值对管理?
    Java的Map.Entry和SimpleEntry如何简化键值对管理?
    A Comprehensive Collection for Value Pairs: Introducing Java's Map.Entry and SimpleEntryIn Java, when defining a collection where each element com...
    编程 发布于2025-07-13
  • Python高效去除文本中HTML标签方法
    Python高效去除文本中HTML标签方法
    在Python中剥离HTML标签,以获取原始的文本表示 仅通过Python的MlStripper 来简化剥离过程,Python Standard库提供了一个专门的功能,MLSTREPERE,MLSTREPERIPLE,MLSTREPERE,MLSTREPERIPE,MLSTREPERCE,MLST...
    编程 发布于2025-07-13
  • 在UTF8 MySQL表中正确将Latin1字符转换为UTF8的方法
    在UTF8 MySQL表中正确将Latin1字符转换为UTF8的方法
    在UTF8表中将latin1字符转换为utf8 ,您遇到了一个问题,其中含义的字符(例如,“jáuòiñe”)在utf8 table tabled tablesset中被extect(例如,“致电。为了解决此问题,您正在尝试使用“ mb_convert_encoding”和“ iconv”转换受...
    编程 发布于2025-07-13
  • 如何使用Regex在PHP中有效地提取括号内的文本
    如何使用Regex在PHP中有效地提取括号内的文本
    php:在括号内提取文本在处理括号内的文本时,找到最有效的解决方案是必不可少的。一种方法是利用PHP的字符串操作函数,如下所示: 作为替代 $ text ='忽略除此之外的一切(text)'; preg_match('#((。 &&& [Regex使用模式来搜索特...
    编程 发布于2025-07-13
  • Android如何向PHP服务器发送POST数据?
    Android如何向PHP服务器发送POST数据?
    在android apache httpclient(已弃用) httpclient httpclient = new defaulthttpclient(); httppost httppost = new httppost(“ http://www.yoursite.com/script.p...
    编程 发布于2025-07-13
  • 为什么我会收到MySQL错误#1089:错误的前缀密钥?
    为什么我会收到MySQL错误#1089:错误的前缀密钥?
    mySQL错误#1089:错误的前缀键错误descript [#1089-不正确的前缀键在尝试在表中创建一个prefix键时会出现。前缀键旨在索引字符串列的特定前缀长度长度,可以更快地搜索这些前缀。了解prefix keys `这将在整个Movie_ID列上创建标准主键。主密钥对于唯一识别...
    编程 发布于2025-07-12
  • 大批
    大批
    [2 数组是对象,因此它们在JS中也具有方法。 切片(开始):在新数组中提取部分数组,而无需突变原始数组。 令ARR = ['a','b','c','d','e']; // USECASE:提取直到索引作...
    编程 发布于2025-07-12
  • 在JavaScript中如何并发运行异步操作并正确处理错误?
    在JavaScript中如何并发运行异步操作并正确处理错误?
    同意操作execution 在执行asynchronous操作时,相关的代码段落会遇到一个问题,当执行asynchronous操作:此实现在启动下一个操作之前依次等待每个操作的完成。要启用并发执行,需要进行修改的方法。 第一个解决方案试图通过获得每个操作的承诺来解决此问题,然后单独等待它们: co...
    编程 发布于2025-07-12
  • 找到最大计数时,如何解决mySQL中的“组函数\”错误的“无效使用”?
    找到最大计数时,如何解决mySQL中的“组函数\”错误的“无效使用”?
    如何在mySQL中使用mySql 检索最大计数,您可能会遇到一个问题,您可能会在尝试使用以下命令:理解错误正确找到由名称列分组的值的最大计数,请使用以下修改后的查询: 计数(*)为c 来自EMP1 按名称组 c desc订购 限制1 查询说明 select语句提取名称列和每个名称...
    编程 发布于2025-07-12
  • 为什么不使用CSS`content'属性显示图像?
    为什么不使用CSS`content'属性显示图像?
    在Firefox extemers属性为某些图像很大,&& && && &&华倍华倍[华氏华倍华氏度]很少见,却是某些浏览属性很少,尤其是特定于Firefox的某些浏览器未能在使用内容属性引用时未能显示图像的情况。这可以在提供的CSS类中看到:。googlepic { 内容:url(&#...
    编程 发布于2025-07-12

免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。

Copyright© 2022 湘ICP备2022001581号-3