块、行内块水平垂直居中

1.定位实现水平垂直居中

复制代码
<div class="outer">
        <div class="test inner1">定位实现水平垂直居中</div>
    </div>

<style>
 .outer {
            width: 300px;
            height: 300px;
            border: 1px solid gray;
            margin: 100px auto 0;
            position: relative;
       }
       .test {
            width: 100px;
            height: 100px;
            background-color: orange;
           
       }
       .inner1 {
             /* 方法一 定位*/
             position: absolute;
            /* 相对于包含块,最近的定位的祖先或父元素 */
            top: 50%; 
            left: 50%;
            margin-left: -50px;
            margin-top: -50px;
       }
</style>

2.定位+位移

复制代码
<div class="outer">
        <div class="test inner2">定位+位移</div>
    </div>
<style>
.outer {
            width: 300px;
            height: 300px;
            border: 1px solid gray;
            margin: 100px auto 0;
            position: relative;
       }
       .test {
            width: 100px;
            height: 100px;
            background-color: orange;
           
       }
       .inner2 {
            position: absolute;
            top: 50%;
            left: 50%;
            /*方法二  translate中的百分比是相对自身,50% 相当于100*50% = 50*/
            transform: translate(-50%, -50%);
       }
</style>

3.相对于整个视口水平垂直居中

复制代码
 <div class="view">相对于整个视口水平垂直居中</div>
    <style>
       
       body {
            position: relative;
        }
        /* 方法三 */
       .view {
            width: 100px;
            height: 100px;
            background-image: linear-gradient(red, yellow, green);
            position: fixed;
            top: 0;
            left: 0;
            right: 0;
            bottom: 0;
            margin: auto;
       }
    </style>

4.flex+margin

复制代码
<head>
    <style>
        .outer {
            width: 400px;
            height: 400px;
            background-color: gray;
            display: flex;
        }
        .inner {
            width: 100px;
            height: 100px;
            margin: auto;
            background-image: linear-gradient(green, yellow);
        }
    </style>
</head>
<body>
    <div class="outer">
        <div class="inner"></div>
    </div>
</body>
  1. flex 水平垂直居中

    <head> <style> .outer { width: 400px; height: 400px; background-color: gray; display: flex; /* 水平居中 */ justify-content: center; /* 垂直居中 */ align-items: center; } .inner { width: 100px; height: 100px; background-image: linear-gradient(green, yellow); } </style> </head> <body>
    </body>

6.遮挡层

复制代码
<div class="item"></div>

/* 遮挡层 */
       .item {
             background-image: repeating-linear-gradient(red 200px, yellow 500px, green 700px);
            opacity: 0.5;
            position: fixed;
            top: 0;
            left: 0;
            right: 0;
            bottom: 0; 
       }
相关推荐
leobertlan2 小时前
2025年终总结
前端·后端·程序员
子兮曰3 小时前
OpenClaw架构揭秘:178k stars的个人AI助手如何用Gateway模式统一控制12+通讯频道
前端·javascript·github
百锦再3 小时前
Reactive编程入门:Project Reactor 深度指南
前端·javascript·python·react.js·django·前端框架·reactjs
莲华君3 小时前
React快速上手:从零到项目实战
前端·reactjs教程
百锦再3 小时前
React编程高级主题:测试代码
android·前端·javascript·react.js·前端框架·reactjs
易安说AI4 小时前
Ralph Loop 让Claude无止尽干活的牛马...
前端·后端
颜酱5 小时前
图结构完全解析:从基础概念到遍历实现
javascript·后端·算法
失忆爆表症5 小时前
05_UI 组件库集成指南:Shadcn/ui + Tailwind CSS v4
前端·css·ui
小迷糊的学习记录5 小时前
Vuex 与 pinia
前端·javascript·vue.js
发现一只大呆瓜6 小时前
前端性能优化:图片懒加载的三种手写方案
前端·javascript·面试