div在设置position为absolute的情况下 如何让里面的内容水平居中显示

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了div在设置position为absolute的情况下 如何让里面的内容水平居中显示相关的知识,希望对你有一定的参考价值。

.div
position:absolute;

left:0;

right:0;
text-align: center

解决这个问题之前,我们要先了解什么是position为absolute:

position属性定义建立元素布局所用的定位机制。任何元素都可以定位,不过绝对或固定元素会生成一个块级框,而不论该元素本身是什么类型。相对定位元素会相对于它在正常流中的默认位置偏移。

举例:

.div 
    position:absolute;
    left:100px;
    top:150px;

值得注意的是,这时候的元素是根据内容自适应大小的,所以我们要使其内部水平居中的前提是设置这个元素的大小,修改css如下:

.div 
    position:absolute;
    left:100px;
    top:150px;
    width: 100px;
    height: 100px;

然后我们再增加文本水平居中:

.div 
    position:absolute;
    left:100px;
    top:150px;
    width: 100px;
    height: 100px;
    text-align: center;

这样我们就解决了“div在设置position为absolute的情况下让里面的内容水平居中显示”。

参考技术A 您好,这个问题有两种情况。
第一种:里面内容元素为块元素,那么将此块元素css设置为:margin:0 auto;
第二种:里面内容元素为行元素,那么将此行元素的父级元素css设置为:text-align:center;
希望能够帮到您。。
参考技术B

假如div的宽度为200px,那么居中的方式为左浮动50%,然后再margin-left为-100px就可以了。

div
width:200px;
position:absolute;
left:50%;
margin-left:-100px;

参考技术C 示例代码:
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
        div.c  width: 400px; height: 400px; background: pink; position: absolute; left: 300px; top: 500px; 
        .b  width: 200px; background: black; margin:0 auto; 
    </style>
</head>
<body>
    <div class="c">
        <div class="b">
            adfadsf
        </div>
    </div>
</body>
</html>

如果里面的内容为内联元素或者文字使用:text-align:center;

如果里面的内容为区块元素:为区块设置宽度和margin:0 auto;

参考技术D

内容水平居中显示和设置position为absolute并无太多关系,这种情况下有几种实现方式:

    display: flex

    仍然采用position:absolute

    margin: 0 auto;

    text-align

div+css中 父容器用position:relative; 定义,子容器用position:absolute定义 。父容器不能高度自适应

div+css中 父容器用position:relative; width:1000px;定义。2个子容器用position:absolute;定义,发现父容器高度就不能自适应了,如何解决 求 大神
非常感觉大家的帮助,但是我采用过overfl:auto但是还是没有,clear:both我没有float,所以不对的。

绝对定位(position:absolute;)使元素的位置与文档流无关,因此不占据空间。设置为绝对定位的元素框从文档流完全删除,并相对于其包含块定位。元素原先在正常文档流中所占的空间会关闭,就好像该元素原来不存在一样。

要子容器自适应高度,就不能用position:absolute; 你可以用 相对定位(position:relative;)来确定子容器的位置。
参考技术A display:table 参考技术B 今晚搞手机pc自适应banner轮播,也发现了这个问题
弄个空白的图片(图片大小要适合哦哦),width:100%; height:auto;撑开文档流,这样外层div就能自动适应了
参考技术C 用js动态获取相对定位的子元素的高度,然后赋值给父元素就行啦 参考技术D 在两个子容器外再套一个DIV就可以了。把relative属性加到新套上去的div上,最外框div就可以自适应了。

以上是关于div在设置position为absolute的情况下 如何让里面的内容水平居中显示的主要内容,如果未能解决你的问题,请参考以下文章

一个div包含两个position:absolute的div。可是,外面的div为啥不能包住那两个div呢

层模型--绝对定位(position:absolute)

子div设置了position: absolute; 但是父层是OVERFLOW-Y: auto; 如果父层出现了滚动条 子div就显示不全!

div+css中 父容器用position:relative; 定义,子容器用position:absolute定义 。父容器不能高度自适应

在手机自带浏览器遇到的一个关于position的坑,absolute设置的位置没出现在预期

z-index的理解 z-index 属性仅在节点的 position 属性为 relative, absolute 或者 fixed 时生效.