どちらか一方を持つことができることを発見しましたが、両方を理解することはできないようです.
私のHTMLは次のとおりです。
<div id="middle">
<div id="middleinner"></div>
</div>
CSS は次のようになります (z-indexes はページ上の別のものに設定されていますが、ここでは無関係なので省略します。さらに、いくつかのことを理解しようとしてコメントアウトされています):
html, body{
font-family: helvetica, sans-serif;
font-size: 1em;
height: 100%;
overflow: hidden;
}
#middle{
/* display: table;*/
display: table;
height: 80%;
width: 90%;
/* position: fixed;*/
position: absolute;
top: 10%;
left: 5%;
right: 95%;
bottom: 90%;
color: #000;
z-index: 0;
}
#middleinner{
padding: 0.5em 1em 0.5em 1em;
background-color: #F9F9F9;
display: table-cell;
/* display: inline-block;*/
border-radius: 1.5em;
vertical-align: middle;
/* margin-left: auto;
margin-right: auto;*/
text-align: center;
/* position: relative;*/
position: absolute;
width: 100%;
height: 100%;
overflow: auto;
z-index: 20;
}
とにかく、ミドルインナーの位置を絶対ではなく相対に変更すると、適切なオーバーフロー処理を犠牲にして垂直方向の配置が得られます。絶対に設定すると、垂直方向の配置を犠牲にして、適切なオーバーフロー処理が得られます。
これを処理できる純粋な CSS の方法はありますか?