CSS - max-inline-size 属性:初学者指南

你好,未来的 CSS 巫师们!今天,我们将深入探索 max-inline-size 属性的精彩世界。如果你对这个属性感到陌生,别担心;我将在这次 CSS 冒险中作为你的友好向导。那么,拿起一杯咖啡(或者如果你喜欢,一杯茶),让我们开始吧!

CSS - Max Inline Size

max-inline-size 是什么?

在我们深入了解之前,让我们先了解一下 max-inline-size 是关于什么的。想象一下你试图把一个非常长的单词塞进一个小盒子里。这就是 max-inline-size 在 CSS 中帮助我们解决的问题。它设置了元素在行内方向的最大尺寸。

“但等等,”你可能会问,“行内方向是什么?”好问题!在英语和许多其他语言中,行内方向是水平的——从左到右。然而,在一些像阿拉伯语或希伯来语这样的语言中,它是从右到左。在垂直书写模式中,它甚至可以是自上而下!

可能的值

现在,让我们看看我们可以与 max-inline-size 一起使用的不同值。这里有一张方便的表格供你参考:

描述
<length> 一个固定的长度,如 300px20em
<percentage> 包含块尺寸的百分比
none 对尺寸没有限制(这是默认值)
max-content 内在的首选尺寸
min-content 内在的最小尺寸
fit-content 使用可用空间,但永远不会小于 min-content,也永远不会大于 max-content

如果现在有些值对你来说看起来有些令人困惑,别担心。我们将通过示例来探索每一个!

应用范围

max-inline-size 属性适用于所有元素,除了:

  • 非替换的内联元素
  • 表格行
  • 行组

语法

max-inline-size 的基本语法非常简单:

max-inline-size: value;

简单吧?现在,让我们深入研究一些具体的示例!

CSS max-inline-size -

让我们从一个使用固定长度的简单示例开始:

.box {
max-inline-size: 300px;
background-color: lightblue;
padding: 10px;
}
<div class="box">
这是一个 max-inline-size 设置为 300px 的盒子。如果内容超出这个宽度,它将换行。
</div>

在这个示例中,我们将 max-inline-size 设置为 300 像素。这意味着无论我们在 .box 中放入多少内容,它都不会在行内方向(在这种情况下是水平的)扩展超过 300px。如果内容太长,它会换到下一行。

CSS max-inline-size -

现在,让我们尝试使用一个百分比值:

.container {
width: 500px;
border: 2px solid black;
}

.box {
max-inline-size: 50%;
background-color: lightgreen;
padding: 10px;
}
<div class="container">
<div class="box">
这个盒子的 max-inline-size 设置为其容器宽度的 50%。
</div>
</div>

在这种情况下,.box 将有一个最大行内尺寸为其容器宽度的 50%。所以,如果容器宽度为 500px,盒子宽度永远不会超过 250px。

CSS max-inline-size -

max-content 值特别有趣。它将最大行内尺寸设置为内容的首选尺寸。让我们看看它是如何工作的:

.box {
max-inline-size: max-content;
background-color: lightyellow;
padding: 10px;
}
<div class="box">
这个盒子将扩展以适应其内容,但除非被强制,否则不会换行。
</div>

使用 max-content,盒子将扩展以使所有内容在同一行上,只有在其接触到视口边缘时才会换行。

CSS max-inline-size - 与垂直文本一起使用

现在,让我们来看看一些不同的情况!让我们看看 max-inline-size 如何与垂直文本一起工作:

.vertical-box {
writing-mode: vertical-rl;
max-inline-size: 100px;
background-color: lightpink;
padding: 10px;
}
<div class="vertical-box">
这段文本是垂直的,max-inline-size 限制了它的高度!
</div>

在这个示例中,我们使用了 writing-mode: vertical-rl 使文本垂直并从右到左。现在,max-inline-size 实际上限制了盒子的高度,因为在垂直书写模式中,行内方向是垂直的!

总结

就这样,朋友们!我们已经从上到下(或者我应该说是,从行内开始到行内结束?)探索了 max-inline-size 属性。记住,CSS 全是关于实验的。不要害怕玩转这些属性,看看会发生什么。我们都是这样学习的!

在我让你离开之前,这里有一个关于 max-inline-size 的小笑话供你记住:为什么 CSS 属性去健身房?当然是锻炼它的 max-inline-size!

快乐编码,愿你的布局总是灵活,内容总是恰到好处!

Credits: Image by storyset