高度不定如何处置居中

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了高度不定如何处置居中相关的知识,希望对你有一定的参考价值。

一、宽度高度都确定如何在一个div中居中

这个是很常见的但方法有很多,我们先上html代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
        *{
            margin: 0;
            padding:0;
        }
        .box1{
            width: 200px;
            height: 200px;
            background-color: red;
            margin: 50px auto;
        }
        .box2{
            width: 100px;
            height: 100px;
            background-color: green;
        }
    </style>
</head>
<body>
    <div class="box1">
        <div class="box2"></div>
    </div>
</body>
</html>

技术分享

如图的样式

让绿色的div在红色的div中水平垂直居中的方法很多,下面列出一些

.box1{
            width: 200px;
            height: 200px;
            background-color: red;
            margin: 50px auto;
            position: relative;
        }
        .box2{
            width: 100px;
            height: 100px;
            background-color: green;
            position: absolute;
            top:50%;
            left:50%;
            margin-top: -50px;
            margin-left: -50px;
        }

方法一:让父盒子相对定位也可以绝对定位,子元素绝对定位position: absolute;top:50%;left:50%;水平和垂直偏移量自身宽度和高度的一半.这是最普通的一种方法。

方法二:让父盒子相对定位也可以绝对定位,子元素绝对定位position: absolute;top:50%;left:50%;用css3的样式transform:translate(-50%,-50%)

 

二、宽度确定高度不定如何在一个div中水平垂直居中

先上html代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
        *{
            margin: 0;
            padding:0;
        }
        .box1{
            width: 200px;
            height: 200px;
            background-color: red;
            margin: 50px auto;
            position: relative;
        }
        .text{
            width: 100px;
        }
    </style>
</head>
<body>
    <div class="box1">
        <p class="text">我都发我我的房间蜂窝肺我无法看而分为偶发我为我疯狂非我付款</p>
    </div>
</body>
</html>

技术分享

方法一:

.text{
width: 100px;
position: absolute;
top:50%;
left:50%;
transform: translate(-50%,-50%);
}

采用css3的样式transform方法

方法二:

.box1{
width: 200px;
height: 200px;
background-color: red;
margin: 50px auto;
line-height: 200px;
text-align: center;
}
.text{
width: 100px;
line-height: 1;
display: inline-block;
vertical-align: middle;
}

父盒子行高设为200px;子元素转化为行内元素然后加上vertical-align: middle;这是让他垂直居中,对于水平居中我们就采用让父盒子加上text-align: center;就ok了

方法三:

.box1{
width: 200px;
height: 200px;
background-color: red;
margin: 50px auto;
display: -webkit-box;
-webkit-box-align:center;
-webkit-box-pack:center;
}
.text{
width: 100px;
line-height: 1;
}

使用 box-align 和 box-pack 属性,对 div 框的子元素进行居中:

目前没有浏览器支持 box-pack 属性。

Firefox 支持替代的 -moz-box-pack 属性。

Safari、Opera 以及 Chrome 支持替代的 -webkit-box-pack 属性。

所以使用需谨慎!!!

 

三、宽度高度都不确定如何在一个div中水平垂直居中

这种情况和宽度确定高度不定的方法一样,不过还有一种方法

转化为表格

.box1{
width: 200px;
height: 200px;
background-color: red;
margin: 50px auto;
display:table;
}
.text{
width: 100px;
line-height: 1;
display: table-cell;
vertical-align: middle;
}

然后子元素display: table-cell;
vertical-align: middle;

就ok了,就总结这么多,请各位大神多多批评指正,谢谢!!!

以上是关于高度不定如何处置居中的主要内容,如果未能解决你的问题,请参考以下文章

固定大小容器内,不同比例的图片高度撑满,宽度居中裁剪

如何让一个字数不定,行数不定的文字居中?

不定宽块状元素居中方法

CSS水平居中+垂直居中+水平/垂直居中的方法总结

水平居中总结-不定宽块状元素方法

css垂直居中