Css 根据内容和页面中间的中心(中心)绝对div自动增长 此代码将页面中的div集中在 #divMessage { z-index: 500; position: absolute; top: 0; left: 0; right: 0; bottom: 0; background-color: lightblue; width: 400px; height: 400px; text-align: center; font-size: 3em; margin: auto; padding: 10px; }

Css 根据内容和页面中间的中心(中心)绝对div自动增长 此代码将页面中的div集中在 #divMessage { z-index: 500; position: absolute; top: 0; left: 0; right: 0; bottom: 0; background-color: lightblue; width: 400px; height: 400px; text-align: center; font-size: 3em; margin: auto; padding: 10px; },css,Css,但是如果文本太长,没有扩展div和增加背景,文本就会越过div 溢出:自动将启用滚动条,但这对我来说也是不可接受的解决方案,如何保持div居中,但使其增长 更新: 如果我使用Min Health:100px,DIV从屏幕的顶部到底部,因为我的前0个和底部0,我用来在屏幕中间将div集中起来,这对我来说不是一个可接受的解决方案。 :-)删除heigth属性,它正在修复它,然后将其更改为min height。这样,如果没有文本,div将保持您想要的大小,并且它将根据需要增长 调整以在所有浏览器中工作

但是如果文本太长,没有扩展div和增加背景,文本就会越过div

溢出:自动将启用滚动条,但这对我来说也是不可接受的解决方案,如何保持div居中,但使其增长

更新: 如果我使用Min Health:100px,DIV从屏幕的顶部到底部,因为我的前0个和底部0,我用来在屏幕中间将div集中起来,这对我来说不是一个可接受的解决方案。
:-)

删除heigth属性,它正在修复它,然后将其更改为min height。这样,如果没有文本,div将保持您想要的大小,并且它将根据需要增长

调整以在所有浏览器中工作:

 #divMessage { 
     min-height:100px;
     height:auto !important;
     height:100px; //this should be the same as min-height.
}

不要用自动边距来居中你的div,试着用左上角和左上角边距;诀窍是把它放在50%的顶部和50%的左侧,并给出一个负的左边距等于div宽度的一半。上边距也是如此

例如:

#divMessage {
    z-index: 500;
    position: absolute;
    top: 50%;
    left: 50%;
    right: 0;
    bottom: 0;
    background-color: lightblue;
    width: 400px;
    min-height: 400px;
    text-align: center;
    font-size: 3em;
    margin-left: -200px;
    margin-top: -200px;
    padding: 10px;
}
看看这把小提琴:

像这样,您可以设置最小高度CSS属性,正如@EricFrick所建议的那样

更新

事实上,内容并没有使容器按需要增长,只是到了某种程度。在尝试了一下之后,我发现没有办法按照你想要的方式来做。“最小高度”仅更改初始高度,但当其溢出时,div停止增长。这似乎是绝对定位元素的常见行为

解决方法:继续像上一个示例一样设置最小高度,更改值并设置overflow-y:scroll或overflow:auto;发送消息。但请记住在更改长方体最小高度时调整上边距,否则将不再具有垂直居中的块

更新版本:


关于您指出的定位问题,请注意,在fiddle示例中,示例正确居中,代码中存在阻止div居中的情况。我敢打赌,在您的项目中包含它的div与此相关。请记住,具有position:absolute的元素获取其相对于其最近定位的祖先或包含块的位置。用Chrome DEV工具或Fixbug检查你的容器DIV宽度和高度,看看它的尺寸。

不幸的是,如果我使用Min Head,DIV会从屏幕的顶部到底部,因为我的前0个和底部0是用来在屏幕中间放置DIV的。不幸的是,我也无法得到想要的结果。它不适当地集中在页面的中间,当内容增长时,文本在div上进行,而没有div生长。“也许我做错了什么?”我对答案做了一些修改,看一看。希望这有帮助。