首页 > 其他分享 >如何实现一个div垂直水平居中?

如何实现一个div垂直水平居中?

时间:2024-03-23 11:59:26浏览次数:27  
标签:居中 color 50% height 垂直 width background div 150px

第一种:定位

        第一种思路:父元素relative,子元素absolute,left为50%,top为50%,再给子div设置距左和距上是自身的一半:transform:translate(-50%,-50%)。

代码实现:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .big-box {
            width: 400px;
            height: 400px;
            background-color: crimson;
            position: relative;
        }

        .small-box {
            width: 150px;
            height: 150px;
            background-color: aqua;
            position: absolute;
            top: 50%;
            left: 50%;
            transform: translate(-50%, -50%);
        }
    </style>
</head>

<body>
    <div class="big-box">
        <div class="small-box"></div>
    </div>
</body>

</html>

        第二种思路:父元素relative,子元素absolute,left为50%,top为50%,再给子div设置距左和距上是负自身的一半即:margin-left:负自身宽度/2,margin-top:负自身高度/2。

代码实现:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .big-box {
            width: 400px;
            height: 400px;
            background-color: crimson;
            position: relative;
        }

        .small-box {
            width: 150px;
            height: 150px;
            background-color: aqua;
            position: absolute;
            top: 50%;
            left: 50%;
            margin-left: -75px;
            margin-top: -75px;
        }
    </style>
</head>

<body>
    <div class="big-box">
        <div class="small-box"></div>
    </div>
</body>

</html>

  第三种思路:父元素relative,子元素absolute,并且left,right,top,bottom设置为0,margin:auto 即可以实现水平垂直居中。

代码实现:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .big-box {
            width: 400px;
            height: 400px;
            background-color: crimson;
            position: relative;
        }

        .small-box {
            width: 150px;
            height: 150px;
            background-color: aqua;
            position: absolute;
            top: 0;
            left: 0;
            right: 0;
            bottom: 0;
            margin: auto;
        }
    </style>
</head>

<body>
    <div class="big-box">
        <div class="small-box"></div>
    </div>
</body>

</html>

第四种:flex布局

        思路:给父元素设置display:flex,并且再给父元素设置水平居中:justify-content:center,垂直居中:align-items:center。这样,子元素就垂直水平居中啦!

代码实现:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .big-box {
            width: 400px;
            height: 400px;
            background-color: crimson;
            display: flex;
            align-items: center;
            justify-content: center;
        }

        .small-box {
            width: 150px;
            height: 150px;
            background-color: aqua;
        }
    </style>
</head>

<body>
    <div class="big-box">
        <div class="small-box"></div>
    </div>
</body>

</html>

第五种:网格布局(grid)

        思路:给父元素设置display:grid,并且再给父元素设置水平居中:justify-content:center,垂直居中:align-items:center。这样,子元素就垂直水平居中啦!(与flex相似)

代码实现:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .big-box {
            width: 400px;
            height: 400px;
            background-color: crimson;
            display: grid;
            align-items: center;
            justify-content: center;
        }

        .small-box {
            width: 150px;
            height: 150px;
            background-color: aqua;
        }
    </style>
</head>

<body>
    <div class="big-box">
        <div class="small-box"></div>
    </div>
</body>

</html>

统一效果:

标签:居中,color,50%,height,垂直,width,background,div,150px
From: https://blog.csdn.net/zhaowenxvan_1023/article/details/136906967

相关文章

  • 每日一题 第二十六期 Codeforces Round 936 (Div. 2)
    A.MedianofanArraytimelimitpertest:1secondmemorylimitpertest:256megabytesinput:standardinputoutput:standardoutputYouaregivenanarrayaa......
  • 每日一题 第二十七期 Codeforces Round 936 (Div. 2)
    B.MaximumSumtimelimitpertest:1secondmemorylimitpertest:256megabytesinput:standardinputoutput:standardoutputYouhaveanarrayaaaof......
  • Codeforces Round 935 (Div. 3)
    A-SettingupCamp思路:判断c能否填充b让b为3的倍数查看代码voidsolve(){inta,b,c;cin>>a>>b>>c;intans=a+b/3;b%=3;if(b>0&&b+c<3)cout<<-1<<'\n';else{ans+=(b+c+2)/3;c......
  • cfRound935div3--DEFG题解
    ps:这场因为精神状态不佳,又C题题意有点绕,卡题了,头晕找不到错.最后做了两题就溜了.狠狠扣90分..D-SeraphimtheOwl题意:即选一个位置,使得其满足题意。而且在满足题意的基础上,要靠近中心越好,如果满足题意而且靠近中心的距离一样,那么输出前面那个.intcnt0[300005]={0};......
  • CF1920 Codeforces Round 919 (Div. 2)
    B.SummationGame给你\(n\)个数(均大于0),Alice先执行一次删除不超过\(k\)个数,Bob再执行一次把最多\(x\)个数变成相反数.问最后数组的最大和是多少?这题本来是想先让Alice删除\(k\)个数,但显然不太容易得到最优解,因为还有可能撤回Alice的删除操作,再加上Bob的操作.......
  • Codeforces Round 935 (Div. 3)
    A.SettingupCamp#include<bits/stdc++.h>usingnamespacestd;usingi32=int32_t;voidsolve(){inta,b,c;cin>>a>>b>>c;intres=a+b/3;b%=3;if(b!=0){if(c<3-b){......
  • 1943+1944.Codeforces Round 934 (Div. 1,Div. 2) - sol
    20240321终于差不多把Div1补完了(F当然没补),第一次打Div1,还是出了一些小状况的。唉。没有补Div1F的逆天题,选择放弃。Dashboard-CodeforcesRound934(Div.2)-CodeforcesDashboard-CodeforcesRound934(Div.1)-Codeforces2A.DestroyingBridgesThere......
  • Educational Codeforces Round 163 (Rated for Div. 2)
    Preface这周很奇怪,连着计网、数据库、组合数学的课都莫名其妙不上了,突然变得很空闲了的说正好有空赶紧补补题,不然接下来有很多造题/比赛的任务搁置着就忘记了A.SpecialCharacters签到,\(n\)是偶数才有解,构造的话注意到一个AAB可以产生\(2\)的贡献,把\(\frac{n}{2}\)个AAB拼起......
  • Tree Compass Codeforces Round 934 (Div. 2) 1944E
    Problem-E-Codeforces题目大意:有一棵n个点的树,初始状态下所有点都是白色的,每次操作可以选择一个点u和一个距离dis,使得距离点u所有长度为dis的点变为黑色,问最少需要多少次操作能使所有点变成黑色,输出所有操作1<=n<=2000思路:要想操作数最少,就要使每次操作涂黑的点的数量尽......
  • HDU 1059 Dividing
    题目传送门:Problem-1059(hdu.edu.cn)问题描述玛莎和比尔拥有一些弹珠。他们希望在自己之间分配收藏品,以便双方都获得平等的弹珠份额。如果所有弹珠都具有相同的价值,这将很容易,因为这样他们就可以将收藏品分成两半。但不幸的是,有些弹珠比其他弹珠更大或更漂亮。因此,Marsha......