Css 垂直居中div内未知长度的文本

Css 垂直居中div内未知长度的文本,css,html,positioning,Css,Html,Positioning,我想在div中居中放置未知长度的文本(好的,它被限制在一定的大小,但我不知道它是否需要一行或两行)。因此我不能使用行高。我试图使用display:table cell,但是布局被破坏了。我不能对top使用一些技巧,因为我需要它来定位 模型: 原始代码: HTML: 当前状态: HTML: 更新: 现在文本已垂直对齐。但是我担心display:table只适用于现代浏览器。您必须添加display:table单元格并添加垂直对齐:中间必须添加显示:表格单元格并添加垂直对齐:中间我已经更新了你的

我想在div中居中放置未知长度的文本(好的,它被限制在一定的大小,但我不知道它是否需要一行或两行)。因此我不能使用
行高。我试图使用
display:table cell
,但是布局被破坏了。我不能对
top
使用一些技巧,因为我需要它来定位

模型:

原始代码:

HTML:

当前状态:

HTML:

更新:


现在文本已垂直对齐。但是我担心
display:table
只适用于现代浏览器。

您必须添加
display:table单元格并添加
垂直对齐:中间

必须添加
显示:表格单元格并添加
垂直对齐:中间

我已经更新了你的小提琴:

它似乎起作用了

见:供参考

我会把
.TileText
放在
.background
里面。为了背景图像而创建一个空div在语义上是不正确的,在大多数情况下也不是必需的。单独背景div的一种情况是,如果需要将背景图像的不透明度与内容分开设置

<div class="background">
    <div class="TileText">MyText - Another long, long, long text</div>
</div>


.background {
    background-color:#000;
    height: 400px;
    width: 100%;   
    display: table
}

.TileText{
    max-width: 200px;
    display: table-cell;
    vertical-align: middle;
    color: #fff;
    clear: both;
    padding-left: 10px;  
}

我的文字-另一个长,长,长的文字
.背景{
背景色:#000;
高度:400px;
宽度:100%;
显示:表格
}
.TileText{
最大宽度:200px;
显示:表格单元格;
垂直对齐:中间对齐;
颜色:#fff;
明确:两者皆有;
左侧填充:10px;
}

回答相同的其他问题


另外,谷歌搜索“中心垂直文本css”的第一个结果将为您提供与我在JSFIDLE中发布的代码结构相同的代码结构

我已经更新了您的FIDLE:

它似乎起作用了

见:供参考

我会把
.TileText
放在
.background
里面。为了背景图像而创建一个空div在语义上是不正确的,在大多数情况下也不是必需的。单独背景div的一种情况是,如果需要将背景图像的不透明度与内容分开设置

<div class="background">
    <div class="TileText">MyText - Another long, long, long text</div>
</div>


.background {
    background-color:#000;
    height: 400px;
    width: 100%;   
    display: table
}

.TileText{
    max-width: 200px;
    display: table-cell;
    vertical-align: middle;
    color: #fff;
    clear: both;
    padding-left: 10px;  
}

我的文字-另一个长,长,长的文字
.背景{
背景色:#000;
高度:400px;
宽度:100%;
显示:表格
}
.TileText{
最大宽度:200px;
显示:表格单元格;
垂直对齐:中间对齐;
颜色:#fff;
明确:两者皆有;
左侧填充:10px;
}

回答相同的其他问题


此外,谷歌搜索“中心垂直文本css”的第一个结果将为您提供与我在JSFIDLE中发布的代码结构相同的代码结构。要实现垂直对齐,您必须使用表格。您可以这样编写代码:

 <div style="width:600px; height:600px; border:#000000 1px solid;">

    <table style="width:100%; height:100%; vertical-align:middle">
        <tr>
            <td>
    MyText - Another long, long, long text
            </td>
        </tr>
    </table>
</div>

我的文字-另一个长,长,长的文字

要实现垂直对齐,必须使用表格。您可以这样编写代码:

 <div style="width:600px; height:600px; border:#000000 1px solid;">

    <table style="width:100%; height:100%; vertical-align:middle">
        <tr>
            <td>
    MyText - Another long, long, long text
            </td>
        </tr>
    </table>
</div>

我的文字-另一个长,长,长的文字

在TileText div中添加一个
标记:

HTML

<div class="background"> &nbsp; </div>
<div class="TileText"><p>MyText - Another long, long, long text</p></div>

这里的示例:

在TileText div中添加一个
标记:

HTML

<div class="background"> &nbsp; </div>
<div class="TileText"><p>MyText - Another long, long, long text</p></div>

这里的示例:

我应该在哪里添加这个?如果我将其添加到
.TileText
中,则文本居中,但div显示在底部。因此,除了div相对于页面垂直居中之外,您还希望文本居中?div不应垂直居中,但我希望定义div的位置(如我的代码中).我应该在哪里添加这个?如果我将其添加到
.TileText
中,则文本居中,但div显示在底部。因此,除了div相对于页面垂直居中之外,您还希望文本居中?div不应垂直居中,但我希望定义div的位置(如我的代码中).对反对票不要太在意。JS Fiddle没有像我想象的那样更新我的代码。我只是想帮忙,但是反对票并不鼓励我这么做。谢谢考虑到原始答案中没有代码可供将来参考,更新JSFIDLE是对这个问题的一个完全合理的回答。我没有投你反对票。我还将用代码更新我的问题。但我看到你删除了我的div的位置,但我想保留它。此外,
.background
显示:table
中有一个错误或您的意思是
显示:表格单元格。但是我必须先测试你的代码。同样,在发布答案60秒后对其进行否决是没有建设性的。JSFIDLE在更新代码时出现了错误。。。答案中的当前链接成功地将文本居中。。。或者你可以从重复的问题中看小提琴。对反对票不要太在意。JS Fiddle没有像我想象的那样更新我的代码。我只是想帮忙,但是反对票并不鼓励我这么做。谢谢考虑到原始答案中没有代码可供将来参考,更新JSFIDLE是对这个问题的一个完全合理的回答。我没有投你反对票。我还将用代码更新我的问题。但我看到你删除了我的div的位置,但我想保留它。此外,
.background
显示:table
中有一个错误或您的意思是
显示:表格单元格。但是我必须先测试你的代码。同样,在发布答案60秒后对其进行否决是没有建设性的。JSFIDLE在更新代码时出现了错误。。。答案中的当前链接成功地将文本居中。。。或者你也可以从电视上看小提琴
<div class="background"> &nbsp; </div>
<div class="TileText"><p>MyText - Another long, long, long text</p></div>
.background{
    background-color:#000;
    height: 400px;
    width: 100%;   
}

.TileText{
    position: relative;
    top: -135px;
    max-width: 200px;
    height: 80px;
    background-color: #FFF;
    color: #black;
    clear: both;
    padding-left: 10px; 
}

.TileText p { 
    position:absolute;
    display: table-cell;
    vertical-align: middle

  }