アプリケーションで中央揃えのポップアップ ウィンドウ ( http://www.w3.org/Style/Examples/007/center )を作成する興味深い方法を見つけました。シンプルで見栄えの良いコード ( http://jsfiddle.net/babaca/6rwL0v0c/22/ )。
html
<div class="__holder">
<div class="__box">
<h2>Some header</h2>
Some bunch of content etc
</div>
</div>
CSS
.__holder {
position: fixed;
z-index: 15000;
top: 0;
right: 0;
bottom: 0;
left: 0;
width: 100%;
height: 100%;
background-color: rgba(0,0,0,.5);
}
.__box {
position: absolute;
z-index: 16000;
top: 50%;
left: 50%;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
margin-right: -50%;
padding: 0;
transform: translate(-50%, -50%);
-webkit-border-radius: 6px;
-moz-border-radius: 6px;
border-radius: 6px;
background-color: #fff;
-webkit-box-shadow: 0 0 18px 3px rgba(0, 0, 0, .07);
-moz-box-shadow: 0 0 18px 3px rgba(0, 0, 0, .07);
box-shadow: 0 0 18px 3px rgba(0, 0, 0, .07);
padding: 29px;
}
レンダリングに関する唯一の問題: ブラウザー ウィンドウのズーム レベルに応じて、水平または垂直の側面がシャープではないか、2 ピクセル間で滑らかに/ぼやけています... (chrome バージョン 39.0.2171.95 m 、firefox 34.0.5 ) ここにあります例(ウィンドウの左右を滑らかにしたもの):
私が理解したように、それはtransform: translate(-50%, -50%)
ラインの責任です。誰でも同じ問題に遭遇しましたか?解決策はありますか?