CSS - max-block-size 属性:初学者的友好指南

你好啊,未来的 CSS 巫师们!今天,我们将踏上一段激动人心的旅程,探索 CSS 的世界,特别是 max-block-size 属性。别担心如果你是新手;我会成为你的友好向导,我们会一步步地攻克这个话题。所以,拿起你最喜欢的饮料,舒服地坐好,让我们一起潜入!

CSS - Max Block Size

max-block-size 是什么?

在我们深入研究之前,让我们先了解一下 max-block-size 是怎么回事。想象你正在用积木建造一座塔。max-block-size 属性就像是在设置你的塔能建多高的限制。在 CSS 术语中,它定义了元素在块方向上的最大尺寸。

“但等等,”你可能会问,“什么是块方向?”好问题!块方向通常是水平书写语言(如英语)的垂直方向,以及垂直书写语言(如传统日语)的水平方向。

语法和可能的值

让我们看看如何在我们的 CSS 中使用 max-block-size

.my-element {
max-block-size: value;
}

现在,我们可以将“value”替换成什么?以下是一个包含所有可能值的便捷表格:

描述
<length> 一个固定的长度,如 300px20em
<percentage> 包含块尺寸的百分比
none 无限制(这是默认值)
max-content 内在的首选最大尺寸
min-content 内在的最小尺寸
fit-content 类似于 auto,但有一些不同
auto 浏览器决定最大尺寸

应用范围

并非所有的 CSS 属性都适用于每个 HTML 元素。max-block-size 属性适用于所有元素,除了:

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

别担心如果你现在还不熟悉这些术语。随着你在 CSS 旅程上的进步,你会遇到它们并理解为什么它们是例外。

CSS max-block-size - writing-mode 效果

现在,事情变得有趣了!max-block-size 属性的行为会根据文本的 writing-mode 而改变。让我们看一些例子:

示例 1:水平书写模式

.box {
writing-mode: horizontal-tb;
max-block-size: 200px;
background-color: lightblue;
padding: 10px;
}
<div class="box">
这是一个水平书写模式且 max-block-size 设置为 200px 的盒子。
</div>

在这个例子中,max-block-size 将限制盒子的高度为 200 像素,因为在水平书写模式中块方向是垂直的。

示例 2:垂直书写模式

.box {
writing-mode: vertical-rl;
max-block-size: 200px;
background-color: lightgreen;
padding: 10px;
}
<div class="box">
这是一个垂直书写模式且 max-block-size 设置为 200px 的盒子。
</div>

在这种情况下,max-block-size 将限制盒子的宽度为 200 像素,因为在垂直书写模式中块方向是水平的。

CSS max-block-size -

当我们使用长度值时,我们是在设置一个固定的最大尺寸。让我们看看它是如何工作的:

.fixed-size {
max-block-size: 150px;
background-color: lightyellow;
padding: 10px;
}
<div class="fixed-size">
这个盒子的 max-block-size 为 150px。如果内容超过这个高度,它将溢出。
</div>

在这个例子中,无论我们在 div 中放入多少内容,它都不会超过 150 像素的高度。

CSS max-block-size -

百分比相对于包含块的尺寸。以下是如何工作的:

.parent {
height: 300px;
background-color: lightgray;
}

.child {
max-block-size: 50%;
background-color: lightpink;
padding: 10px;
}
<div class="parent">
<div class="child">
这个子 div 的 max-block-size 为其父 div 高度的 50%。
</div>
</div>

在这种情况下,子 div 的高度永远不会超过其父 div 的一半。

CSS max-block-size -

max-content 值在你想让你的元素尽可能大以适应其内容,但不超过内容时特别有用。让我们看一个例子:

.max-content-box {
max-block-size: max-content;
background-color: lightcoral;
padding: 10px;
}
<div class="max-content-box">
这个盒子将扩展以适应其内容,但不会超过那个范围。
</div>

这个盒子将增长以容纳其内容,但不会超出那个范围。

CSS max-block-size - 水平和垂直文本

让我们用一个结合水平和垂直文本的例子来结束:

.mixed-text {
max-block-size: 200px;
background-color: lavender;
padding: 10px;
}

.vertical-text {
writing-mode: vertical-rl;
max-block-size: 100px;
background-color: lightsalmon;
margin-top: 10px;
}
<div class="mixed-text">
这是水平文本,max-block-size 为 200px。
<div class="vertical-text">
这是垂直文本,max-block-size 为 100px。
</div>
</div>

在这个例子中,我们有一个包含水平文本和最大高度为 200px 的容器。在其中,我们有一个具有垂直文本和最大宽度为 100px 的另一个 div。

就是这样!我们已经从不同的角度探索了 max-block-size 属性。记住,掌握 CSS 的关键是实践。所以,不要害怕用这些例子进行实验,修改它们,看看会发生什么。快乐编码,愿你的积木总是尺寸恰到好处!

Credits: Image by storyset