根据本站“关于我”练习整理的开发笔记草稿。保留一个足够小的例子,方便看清每条样式改变了什么。

01先让内容分组清楚

一张关于我卡片通常包含标题、头像、介绍和链接。开始写样式前,先确定哪些内容属于同一个区域:用 section 包住整张卡片,再用一个容器把头像与文字组放在一起。这样,布局规则才有清楚的作用对象。

这个练习给外层设置 card 类,给头像和文字的共同父级设置 profile 类。类名本身不会产生视觉效果,它只是让 CSS 能选中对应元素。文字和链接再放进同一个分组,就能作为一个整体与头像排列。

02用盒模型理解留白

把卡片看成一个盒子:内容在中间,padding 是内容到边框的距离,border 是边框,margin 则控制盒子与外部元素之间的间距。它们都能制造空白,但改变的位置不同。

练习时把 padding 从 24px 调到 40px,最明显的变化是内容离卡片边缘更远。若卡片有背景色,可以直接观察这段空间。调整 margin-top 则会改变卡片与上方内容的距离,不会增加卡片内部的留白。

css
.card {
  padding: 24px;
  margin-top: 24px;
  border: 1px solid #d6e0ef;
  border-radius: 12px;
}

03让头像和文字并排

给 profile 设置 display: flex 后,它的直接子元素开始按 Flex 规则排列。默认横向排列时,头像是一项,文字组是另一项;gap 控制两项之间的距离,align-items: center 让它们在垂直方向居中。

头像不应该因为文字变多而被挤成窄条,可以给它设置 flex-shrink: 0。Flex 处理的是父容器与直接子元素之间的关系,所以先把文字和链接分成一组,会比给每个段落分别定位更容易维护。

css
.profile {
  display: flex;
  align-items: center;
  gap: 24px;
}

.profile img {
  flex-shrink: 0;
}

04窗口变窄,布局也跟着变

横向排列在宽屏上自然,窄屏却可能压缩文字空间。这个例子在视口宽度不超过 600px 时改为纵向:头像在上,文字在下,并把卡片内边距调小一些。600px 是这份练习选用的断点,并不是所有手机的统一宽度。

验证时缓慢拖动窗口,而不是只看最大和最小两种尺寸。同时检查长链接是否溢出、文字是否贴边、图片是否变形。布局的目标是让同一份内容在不同空间里都容易阅读。

如果不确定是哪条样式产生效果,可以每次只调整一个值:先改内边距,再改元素间距,最后切换排列方向。观察变化的位置,比一次粘贴很多规则更容易建立对布局的直觉。

css
@media (max-width: 600px) {
  .profile {
    flex-direction: column;
    align-items: flex-start;
  }

  .card {
    padding: 24px;
  }
}

继续阅读

对应的官方文档,适合需要更完整细节时查阅。

这一篇,到这里。回到文章顶部 ↑