Saya memiliki div yang akan memiliki CSS ini:
#some_kind_of_popup
{
position: fixed;
top: 100px;
min-height: 300px;
width: 90%;
max-width: 900px;
}
Sekarang, bagaimana cara membuat div ini terpusat? Saya dapat menggunakan margin-left: -450px; left: 50%;
tetapi ini hanya akan berfungsi ketika layar> 900 piksel. Setelah itu (ketika jendela <900 piksel), itu tidak lagi berada di tengah.
Tentu saja saya dapat melakukan ini dengan beberapa jenis js, tetapi apakah ada yang "lebih benar" untuk melakukan ini dengan CSS?
margin: 0 auto
padaposition: fixed
div. Apakah Anda membaca pertanyaan itu?Jawaban:
Anda dapat memusatkan
fixed
atauabsolute
menetapkan elemen yang diposisikanright
danleft
ke0
, lalumargin-left
&margin-right
keauto
seolah-olah Anda sedang memusatkanstatic
elemen yang diposisikan.#example { position: fixed; /* center the element */ right: 0; left: 0; margin-right: auto; margin-left: auto; /* give it dimensions */ min-height: 10em; width: 90%; }
Lihat contoh ini mengerjakan biola ini .
sumber
right
danleft
setidaknya avalue >= witdth / 2
, seperti yang terlihat di jsfiddle.net/PvfFy/168 , tetapi bukan merupakan pendekatan yang elegan IMHO. Saya telah mengujinya di chrome untuk bersenang-senang, saya tidak tahu apakah itu akan berfungsi pada sisanyaBerikut metode lain jika Anda dapat menggunakan
transform
properti CSS3 dengan aman :.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%); }
... atau jika Anda menginginkan pemusatan horizontal DAN vertikal:
.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%); }
sumber
<div id="container"> <div id="some_kind_of_popup"> center me </div> </div>
Anda harus membungkusnya dalam wadah. ini cssnya
#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; }
sumber
Ini berfungsi terlepas dari ukuran isinya
.centered { position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%); }
sumber: https://css-tricks.com/quick-css-trick-how-to-center-an-object-exactly-in-the-center/
sumber
transform: translate(-50%, -50%);
menyebabkan teks menjadi buram (setidaknya pada chrome)