CSS全屏div,中间有文字[重复]

Posted

技术标签:

【中文标题】CSS全屏div,中间有文字[重复]【英文标题】:CSS full screen div with text in the middle [duplicate] 【发布时间】:2012-05-29 06:03:18 【问题描述】:

我定义了一个css类,所以我可以制作一个div来使用所有浏览器的视口,规则如下:

.fullscreenDiv 
    background-color: #e8e8e8;
    width: 100%;
    height: auto;
    bottom: 0px;
    top: 0px;
    left: 0;
    position: absolute;

现在我希望 div 内的文本正好位于屏幕的中心,因此垂直居中对齐和水平居中居中,但我似乎找不到正确的方法。

它只需要在基于 webkit 的浏览器上工作。

我已经尝试在其中添加一个 P 元素,并将 display 设置为 table-cell(一种使文本居中的常用方法),但运气不佳。

有什么建议吗?

【问题讨论】:

text-align: center; position: absolute; top: 50%; bottom: 50%; width: 100%; - 这应该比接受的答案更好 - 将样式添加到您的文本中 【参考方案1】:

接受的答案有效,但如果:

您不知道内容的尺寸 内容是动态的 你想成为未来的证明

使用这个:

.centered 
  position: fixed; /* or absolute */
  top: 50%;
  left: 50%;
  /* bring your own prefixes */
  transform: translate(-50%, -50%);

有关在这个出色的CSS-Tricks article 中居中内容的更多信息。


此外,如果您不需要支持旧浏览器:一个 flex-box 让这变得轻而易举:
.center
    height: 100vh;
    display: flex;
    justify-content: center;
    align-items: center;

CSS Tricks 中关于 flexbox 的另一个很棒的指南; http://css-tricks.com/snippets/css/a-guide-to-flexbox/

【讨论】:

【参考方案2】:

标准的做法是给居中的元素固定尺寸,并绝对放置:

<div class='fullscreenDiv'>
    <div class="center">Hello World</div>
</div>​

.center 
    position: absolute;
    width: 100px;
    height: 50px;
    top: 50%;
    left: 50%;
    margin-left: -50px; /* margin is -0.5 * dimension */
    margin-top: -25px; 
​
DEMO

【讨论】:

我正在尝试这个,但如果我想将文本也放在“中心”div的中间? @JuanAlbertoLópezCavallotti 你只会重现这个问题。将text-align: center 添加到center 类将使您成功。如果它只有 1 行文本,您可以添加 line-height: 50px,或者任何居中容器的高度。这也会使其垂直居中。 不确定是否需要额外的元素,但你可以这样做:jsfiddle.net/wzSmc/1 @JuanAlbertoLópezCavallotti 更新了 DEMO:jsfiddle.net/paislee/wzSmc/2 感谢@paislee 解决了我的问题,它正在寻找正确的方式,这才是最重要的!【参考方案3】:

这个经典问题没有纯 CSS 解决方案。

如果你想实现这一点,你有两个解决方案:

使用表格(丑陋,不符合语义,但是垂直对齐非单行文本的唯一方法) 监听window.resize和绝对定位

编辑:当我说没有解决方案时,我假设您事先不知道要居中的块的大小。如果你知道的话,佩斯利的解法很好

【讨论】:

【参考方案4】:

text-align: center 将它水平居中,垂直放置在一个跨度中,并给它一个margin:auto 0; 的css(你可能还必须给跨度一个display: block 属性)

【讨论】:

以上是关于CSS全屏div,中间有文字[重复]的主要内容,如果未能解决你的问题,请参考以下文章

实现全屏轮播,并且轮播div中的文字盒子一直自动垂直居中

css 如何实现两个div占满全屏

DIV高度怎么设置全屏?

div+css如何实现全屏放大键效果加自动播放语音效果?

DIV+CSS,怎样将背景图片拉伸到全屏!! 谢谢各位了 急呀~~~

HTML+css实现图片全屏