第 7 课 8 / 17 | 编码:L07-11
为黄梅戏分享会建立统一样式

限制正文宽度,保留阅读空间

让正文在宽屏上不过长,在窄屏上不紧贴边缘。先分清:空间是留在盒子里面,还是盒子外面?

看图理解:内容、内边距、边框与外边距

CSS盒模型从内到外依次为内容区、padding内边距、border边框和margin外边距。内边距位于内容与边框之间,外边距位于边框之外。
颜色用于区分示意区域,不代表元素必须显示这些颜色;图中宽度不按下方代码的数值比例绘制。

记忆:padding 是盒子里面留空,margin 是盒子外面留距。默认情况下,背景颜色会覆盖内容区和内边距,但不覆盖外边距。

回到代码:页面留边,正文居中

<style>
body { margin: 0; padding: 20px; }
.container {
  max-width: 640px;
  margin-inline: auto;
  padding: 16px;
  background: #f0f8f5;
}
</style>
<article class="container">
  <h1>黄梅戏分享会</h1>
  <p>从唱腔、人物与舞台三个角度认识黄梅戏。欢迎分享你的观察。</p>
</article>

两个元素同一行:自动外边距怎样分配?

margin-inline: auto; 在通常的横向排版中,相当于同时设置左右外边距为 auto。本例先用 display: flex; 让两个元素在同一行排列,再给两个元素都设置自动外边距。Flexbox 的完整规则将在后续布局课学习。

<style>
.row {
  display: flex; /* 让两个子元素在同一行排列 */
  width: 1000px;
}
.item {
  width: 300px;
  margin-inline: auto;
  background: #e4f3ef;
}
</style>
<div class="row">
  <div class="item">唱腔赏析</div>
  <div class="item">服饰介绍</div>
</div>
两个 Flex 元素的四个自动外边距均分剩余空间 父容器内容区宽1000像素,两个元素各宽300像素。剩余400像素分给四个自动外边距,每个100像素。元素之间为两个外边距相加,共200像素。 父容器内容区:1000px A 左 100px A:唱腔赏析 300px A 右 100px B 左 100px B:服饰介绍 300px B 右 100px 剩余空间:1000 − 300 − 300 = 400px 四个 auto 均分:400 ÷ 4 = 100px;中间间距:100 + 100 = 200px
本例是独立的 Flex 布局示例:两个元素都没有内边距和边框,容器未设置 gap。图中线条仅用于标记边界,不计入示例尺寸。
拓展阅读:min() 组合宽度
.container {
  width: min(90%, 640px);
}

取包含块宽度的90%与640px中较小的值。