You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用CSS将容器居中于屏幕中央及卡片代码简化建议

问题与解决方案

一、让.container_block居中显示在屏幕中央的方法

要实现容器水平+垂直居中,核心是确保父元素具备足够高度,以下两种方法任选其一:

方法1:Flexbox布局(推荐)

给.container_block的父容器(比如第二页的包裹元素,假设类名为.page2)添加样式,通过Flex实现居中:

.page2 {
  height: 100vh; /* 让父容器占满当前视口高度 */
  display: flex;
  align-items: center; /* 垂直居中 */
  justify-content: center; /* 水平居中 */
}

此时.container_block无需额外修改即可自动居中。如果父容器不是body,记得给它加position: relative;避免布局混乱。

方法2:绝对定位+Transform

直接给.container_block添加定位样式,无需修改父元素:

.container_block {
  width: 80%;
  height: 40%;
  background-color: red;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%); /* 偏移自身宽高的一半实现精准居中 */
}

如果是第二页单独使用,建议给第二页容器加position: relative;,让容器相对于第二页居中,而非整个文档。

二、CSS代码简化建议

你的代码存在大量重复样式,可通过以下方式优化:

1. 合并重复的卡片样式

card1到card4的样式完全一致,给所有卡片加一个通用类(比如.card),把共同样式集中写在.card里,删除单独的card1~card4样式:

.card {
  box-shadow: 1px 1px 8px 6px rgba(0,0,0,0.2);
  transition: 0.3s;
  height: 30vh;
  width: 30vh;
  border-radius: 20px;
  margin: 4vh 5vh 0 0; /* 合并margin写法 */
}

HTML里把card1~card4的类统一改成card即可。

2. 使用CSS变量统一管理重复值

把常用重复值定义为变量,后续修改更高效:

:root {
  --card-size: 30vh;
  --card-shadow: 1px 1px 8px 6px rgba(0,0,0,0.2);
  --card-radius: 20px;
  --text-color: white;
}

/* 调用变量 */
.card {
  box-shadow: var(--card-shadow);
  height: var(--card-size);
  width: var(--card-size);
  border-radius: var(--card-radius);
}

.cards h2, .cards p {
  color: var(--text-color);
  margin: 15px;
}

3. 清理冗余代码

  • .container_block默认是块级元素,删除display: block;
  • 合并文字样式,减少重复代码:
.cards h2, .cards p {
  margin: 15px;
  color: white;
}
.cards h2 {
  font-size: 25px;
}
.cards p {
  font-size: 20px;
}

4. 优化卡片布局适配

给.cards添加换行属性,避免小屏幕下卡片溢出:

.cards {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap; /* 超出宽度自动换行 */
}

内容的提问来源于stack exchange,提问作者borat

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 04:25:23