2017-01-08 5 views
-3

要素を親の真ん中で縦に並べる方法は?

.overlay 
 
{ 
 
    position: fixed; 
 
    top: 0; 
 
    left: 0; 
 
    width: 100%; 
 
    height: 100%; 
 
    background: rgba(0, 0, 0, 0.8); 
 
    z-index: 4; 
 
    vertical-align: middle; 
 
} 
 
.popup 
 
{ 
 
    margin: auto; 
 
    padding: 20px; 
 
    box-sizing: border-radius; 
 
    background-color: #185895; 
 
    border-radius: 5px; 
 
    width: 60%; 
 
    height: auto; 
 
    transition: all 5s ease-in-out; 
 
} 
 

 
<div class="overlay"> 
 
    <div class="popup"></div> 
 
</div>

私は.overlayの途中で.popupを揃えたいです...!

+0

"display:none"を.overlayの "display:block"に置き換え、.popupに "vertical-align:middle"を追加するようです。どうしたの? –

+1

どうして "うまくいかない"のですか? vertical-alignとdisplay:blockを使用するとどうなりますか?また、オーバーレイセクションに "display:none"と "display:block"の両方が必要な場合は、矛盾する要件があるようです。多くの場合、競合する要件は、自分の設計を再考し、異なる方法で問題にアプローチする必要があることを示します。あなたは何をしようとしていますか? –

+1

誤解を招く矛盾したタイトル。努力と研究が欠けている。 –

答えて

1

CSS3トランスフォームのプロパティを使用して、垂直方向にセンタリングすることができます。

クロスブラウザーのサポートに注意してください。トランスフォームはIEで部分的にのみサポートされています。接頭辞はIE9から始まります。サポートの詳細については、Can I Useを参照してください。

.popup 
{ 
    position: relative; 
    top: 50%; 
    transform: translateY(-50%); 
    -ms-transform: translateY(50%); /* IE9 support */ 
    margin: auto; 
    padding: 20px; 
    box-sizing: border-radius; 
    background-color: #185895; 
    border-radius: 5px; 
    width: 60%; 
    height: auto; 
    transition: all 5s ease-in-out; 
} 
関連する問題