0

我想用文字覆盖。现在我有: http: //jsfiddle.net/9DLyE/9/ 但在这个例子中不工作垂直对齐:中间。我尝试使用 display: table; 并显示:表格单元格;但这不适用于绝对位置。我怎样才能在http://jsfiddle.net/9DLyE/9/中做到这一点?

<div id="main">
    <div>TITLE</div>
    <div>BODY</div>
    <div>COMMENT</div>
    <div><textarea></textarea></div>
    <div id="overlay">@@@@@@</div>
</div>
<button>overlay</button>

#main {
    width: 200px;
    height: 200px;
    background-color: yellow;
    position:relative
}
#overlay{
    background:rgba(0, 84, 214, 0.5);
    height:100%; width:100%;
    position:absolute;
    top:0; left:0;
    display:none;
    text-align: center;
    vertical-align: middle;
}
4

2 回答 2

1

而不是vertical-align: middle;给叠加层一个与主 div 相同的行高:

#overlay {
    line-height: 200px; // the height of #main
}

演示

于 2013-06-05T13:49:07.977 回答
0

我根本不喜欢使用表格,但也许你可以这样做,至少这样可以保证它总是在中间。

<div id="main">
    <div>TITLE</div>
    <div>BODY</div>
    <div>COMMENT</div>
    <div><textarea></textarea></div>
    <div id="overlay">
        <table id="wrapper">
            <tr>
                <td>@@@@@@</td>
            </tr>
        </table>
    </div>
</div>
<button>overlay</button>

http://jsfiddle.net/9DLyE/9/

有办法用图像来做,但用文字有点棘手。

ps 这里是你需要的表格的 CSS

#wrapper {
   height:100%;
   width: 100%;
   margin: 0;
   padding: 0;
   border: 0;
}
#wrapper td {
   vertical-align: middle;
   text-align: center;
}

希望这可以帮助。

于 2013-06-05T14:05:18.150 回答