私はこのCSSを持つdivを持っています:
#some_kind_of_popup
{
position: fixed;
top: 100px;
min-height: 300px;
width: 90%;
max-width: 900px;
}
今、このdivを中央に配置するにはどうすればよいですか? margin-left: -450px; left: 50%;
を使用できますが、これは画面が900ピクセルを超える場合にのみ機能します。その後(ウィンドウが900ピクセル未満の場合)、中央に配置されなくなります。
もちろん、ある種のjsでこれを行うことができますが、CSSでこれを行う「より正確な」方法はありますか?
fixed
またはabsolute
配置された要素をright
およびleft
を0
にセンタリングし、次にmargin-left
&margin-right
をセンタリングできますauto
は、static
配置された要素を中央に配置するかのように。
#example {
position: fixed;
/* center the element */
right: 0;
left: 0;
margin-right: auto;
margin-left: auto;
/* give it dimensions */
min-height: 10em;
width: 90%;
}
CSS3のtransform
プロパティを安全に使用できる場合の別の方法は次のとおりです。
.fixed-horizontal-center
{
position: fixed;
top: 100px; /* or whatever top you need */
left: 50%;
width: auto;
-webkit-transform: translateX(-50%);
-moz-transform: translateX(-50%);
-ms-transform: translateX(-50%);
-o-transform: translateX(-50%);
transform: translateX(-50%);
}
...または水平と垂直の両方のセンタリングが必要な場合:
.fixed-center
{
position: fixed;
top: 50%;
left: 50%;
width: auto;
height: auto;
-webkit-transform: translate(-50%,-50%);
-moz-transform: translate(-50%,-50%);
-ms-transform: translate(-50%,-50%);
-o-transform: translate(-50%,-50%);
transform: translate(-50%,-50%);
}
<div id="container">
<div id="some_kind_of_popup">
center me
</div>
</div>
コンテナにラップする必要があります。ここにCSSがあります
#container{
position: fixed;
top: 100px;
width: 100%;
text-align: center;
}
#some_kind_of_popup{
display:inline-block;
width: 90%;
max-width: 900px;
min-height: 300px;
}
これは、コンテンツのサイズに関係なく機能します
.centered {
position: fixed;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}
ソース: https://css-tricks.com/quick-css-trick-how-to-center-an-object-exactly-in-the-center/