发布于 2026-01-06 1 阅读
0

使用 HTML 和 CSS 制作响应式(生日)贺卡

使用 HTML 和 CSS 制作响应式(生日)贺卡

在本教程中,我将向您展示如何仅使用 HTML 和 CSS 制作响应式卡片。

响应式卡片是指在各种尺寸的屏幕上都能完美呈现的卡片。我们可以通过使用flexbox相对高度和宽度(而非绝对尺寸)来实现这一点,还可以@media使用规则来定义 CSS 属性,使其仅在特定屏幕尺寸上生效。

HTML

这是一张简单的卡片。卡片内页有一张图片和一些文字。



<div class="card">
    <img src="./birthday.svg" alt="birthday" class="birthday">
    <div class="text">
      <h1>Happy Birthday!</h1>
      <p>I hope you have a wonderful birthday</p>
      <p>- Jonah Lawrence</p>
    </div>
  </div>


Enter fullscreen mode Exit fullscreen mode

相对大小和 Flexbox

这里我将高度设置为85vh视口高度的 85%,宽度设置为80vw视口宽度的 80%。使用这种相对尺寸而不是绝对尺寸(例如 800px)可以让元素根据屏幕大小自动拉伸和收缩。

使用 Flexbox,我们可以将卡片中的元素沿高度或宽度方向展开。我们还可以用它来使它们垂直和水平居中。我推荐您查看Codepip 的Flexbox Froggy,它提供了一种交互式的方式来理解 Flexbox 的工作原理。

默认情况下,flex 方向为row(从左到右),但您可以使用flex-direction: column(从上到下)来覆盖此设置。现在,我们的图像显示在顶部,文本显示在底部。



.card {
  height: 85vh;
  width: 80vw;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  text-align: center;
}


Enter fullscreen mode Exit fullscreen mode

image.png

@media规则

当屏幕宽度至少达到 1000px 时,我们就不需要再将图像放在最上面了,我们可以将其与文本并排放置。

使用@media如下规则,当屏幕最小宽度为 1000px 时,flex-direction: row-reverse将应用该规则,.card使 flexbox 将项目从右到左放置(图像在右侧,文本在左侧)。



@media only screen and (min-width: 1000px) {
  .card {
    flex-direction: row-reverse;
  }
}


Enter fullscreen mode Exit fullscreen mode

image.png

在像横屏手机这样屏幕很短的设备上,我们也可能需要使用横屏布局,所以我们可以使用以下规则max-height

此规则中的 CSS 属性仅对最大高度为 640px 的屏幕生效。



@media only screen and (max-height: 640px) {
  .card {
    flex-direction: row-reverse;
  }
}


Enter fullscreen mode Exit fullscreen mode

image.png

演示

尝试以全屏视图运行演示,看看效果如何。

调整视口大小,即可从纵向视图切换到横向视图。

观看完整教程

这段视频中,我将完整地演示从零开始创建这个演示的过程。

想要全面了解我是如何设计这张响应式生日贺卡的,一定要去看看!

关于我

我叫乔纳·劳伦斯,是一名全栈开发人员。

您可以通过以下方式找到我:

YouTube 📺 https://www.youtube.com/DevProTips

Twitter ✍ https://twitter.com/DenverCoder1

Github 👨‍💻 https://github.com/DenverCoder1

如果你喜欢我的内容,请务必点赞、转发并订阅我的频道!

文章来源:https://dev.to/denvercoder1/making-a-responsive-birthday-card-with-html-and-css-482j