CSS——实现盒子在页面居中

1.三种常见方法

  1. 使用translate位移 + position定位实现
  2. 使用Grid布局实现
  3. 使用Flex布局实现

2.代码示例

2.1 translate + position:使用绝对定位,让盒子脱离文档流,通过top和left将盒子的左上角放到中心点上,然后使用translate移动使其居中。

html 复制代码
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>页面水平垂直居中</title>
    <style>
      .box {
        position: absolute;
        width: 400px;
        height: 400px;
        top: 50%; /* 把元素的"上边缘"放到包含块高度的 50% 处 */
        left: 50%; /*  把元素的"左边缘"放到包含块宽度的 50% 处 */
        transform: translate(-50%, -50%);/*向左、向上各移动自身宽/高的 50%,让元素中心与包含块中心重合 */
        background-color: pink;
    }
    </style>
  </head>
  <body>
    <div class="box">
    </div>
  </body>
</html>

2.2 Grid布局:使用place-item:center实现居中。

html 复制代码
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>页面水平垂直居中</title>
    <style>
    .parent {
        display: grid;
        place-items: center; /* 同时水平和垂直居中 */
        height: 100vh;       /* 为了示例效果,父元素设置全屏高度 */
    }
    .child {
        width: 100px;
        height: 100px;
        background-color: blue;
    }
   </style>
  </head>
  <body>
<div class="parent">
   <div class="child"></div>
</div>
  </body>
</html>

2.3 Flex布局:使用justify-content: center和align-items: center,通过控制主轴和交叉轴实现居中。

html 复制代码
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>页面水平垂直居中</title>
    <style>
     .parent {
        display: flex;
        justify-content: center; /* 水平居中 */
        align-items: center;    /* 垂直居中 */
        height: 100vh;          /* 为了示例效果,父元素设置全屏高度 */
    }
    .child {
        width: 100px;
        height: 100px;
        background-color: red;
    }
   </style>
  </head>
  <body>
<div class="parent">
   <div class="child"></div>
</div>
  </body>
</html>
相关推荐
谢彦超oooo18 小时前
HTML5 与前端开发要点
前端·html·html5
IT_陈寒18 小时前
Vue 3响应式原理深度拆解:5个90%开发者不知道的Ref与Reactive底层实现差异
前端·人工智能·后端
睡前要喝豆奶粉19 小时前
在.NET Core Web Api中使用JWT并配置UserContext获取用户信息
前端·.netcore
前端加油站19 小时前
一份实用的Vue3技术栈代码评审指南
前端·vue.js
Jonathan Star1 天前
沉浸式雨天海岸:用A-Frame打造WebXR互动场景
前端·javascript
工业甲酰苯胺1 天前
实现 json path 来评估函数式解析器的损耗
java·前端·json
老前端的功夫1 天前
Web应用的永生之术:PWA落地与实践深度指南
java·开发语言·前端·javascript·css·node.js
LilySesy1 天前
ABAP+WHERE字段长度不一致报错解决
java·前端·javascript·bug·sap·abap·alv
Wang's Blog1 天前
前端FAQ: Vue 3 与 Vue 2 相⽐有哪些重要的改进?
前端·javascript·vue.js
再希1 天前
React+Tailwind CSS+Shadcn UI
前端·react.js·ui