Dari jawaban-jawaban hebat itu, saya hanya ingin menyoroti bahwa Anda harus memberi "#inner" sebuah "lebar", atau itu akan menjadi "100%", dan Anda tidak bisa memastikan apakah itu sudah terpusat.
Anda dapat menerapkan CSS ini ke bagian dalam <div>:
#inner {width:50%;margin:0 auto;}
Tentu saja, Anda tidak perlu mengatur widthuntuk 50%. Lebar kurang dari isi <div>akan bekerja. Inilah margin: 0 autoyang dilakukan pemusatan yang sebenarnya.
Jika Anda menargetkan Internet Explorer 8 (dan lebih baru), mungkin lebih baik memilikinya:
#inner {display: table;margin:0 auto;}
Ini akan membuat pusat elemen dalam secara horizontal dan berfungsi tanpa menetapkan yang spesifik width.
Untuk pemusatan vertikal, saya biasanya menggunakan "garis-tinggi" (garis-tinggi == tinggi). Ini sederhana dan bagus tetapi hanya bekerja dengan teks satu baris konten :)
Nicolas Guillaume
98
Anda harus menggunakan tag! DOCTYPE pada halaman html Anda untuk membuatnya bekerja dengan baik di IE.
Fabio
15
Perhatikan bahwa mungkin perlu menambahkan "float: none;" untuk #inner.
Mert Mertce
15
Anda juga mengatur margin atas dan bawah ke 0, yang tidak terkait. Lebih baik margin-left: auto; margin-right: autosaya pikir.
Emmanuel Touzery
13
Tidak harus margin:0 auto: itu bisa menjadi margin: <whatever_vertical_margin_you_need> automargin horisontal kedua.
YakovL
1247
Jika Anda tidak ingin menetapkan lebar tetap di bagian dalam divAnda bisa melakukan sesuatu seperti ini:
@ SaabaAhang sintaks yang benar untuk itu float: none;dan mungkin hanya diperlukan karena #inner telah mewarisi floatsalah satu leftatau rightdari tempat lain di CSS Anda.
Doug McLean
8
Ini solusi yang bagus. Ingatlah bahwa batin akan mewarisi text-alignsehingga Anda mungkin ingin menetapkan batin text-alignuntuk initialatau nilai lainnya.
Pastikan Anda membaca jawaban ini terlebih dahulu sebelum Anda menerapkan solusi ini.
cimmanon
4
Safari, seperti yang sekarang, masih memerlukan -webkitbendera untuk flexbox ( display: -webkit-flex;dan -webkit-align-items: center;dan -webkit-justify-content: center;)
Joseph Hansen
Saya selalu berpikir bahwa menggunakan kode lot adalah praktik yang buruk misalnya dengan kode ini saya memusatkan div saya: display: table; margin: otomatis; sederhana dan mudah
Saya tidak suka solusi ini karena ketika elemen dalam terlalu luas untuk layar, Anda tidak dapat menggulir seluruh elemen secara horizontal. margin: 0 otomatis berfungsi lebih baik.
Aloso
margin-left: auto; margin-right: otomatis; memusatkan elemen tingkat blok
killscreen
Lebar default untuk sebagian besar elemen level blok adalah otomatis, yang mengisi area yang tersedia di layar. Hanya dipusatkan menempatkannya pada posisi yang sama dengan perataan kiri. Jika Anda menginginkannya terpusat secara visual, Anda harus menetapkan lebar (atau lebar maksimum meskipun Internet Explorer 6 dan yang lebih lama tidak mendukung ini, dan IE 7 hanya mendukungnya dalam mode standar).
killscreen
228
Saya telah membuat contoh ini untuk menunjukkan bagaimana secara vertikal dan horizontalalign .
+1 untuk metode ini, saya akan menjawabnya. Perhatikan bahwa Anda harus mendeklarasikan lebar pada elemen yang ingin Anda pusatkan secara horizontal (atau tinggi jika memusatkan secara vertikal). Berikut penjelasan lengkap: codepen.io/shshaw/full/gEiDt . Salah satu metode pemusatan elemen yang lebih fleksibel dan banyak didukung secara vertikal dan / atau horizontal.
stvnrynlds
6
Anda tidak dapat menggunakan padding di dalam div, tetapi jika Anda ingin memberikan ilusi gunakan perbatasan dengan warna yang sama.
Squirrl
Saya pikir agar metode ini berhasil, Anda perlu mengatur dengan dan tinggi div bagian dalam
Nicolas S.Xu
212
Beberapa poster telah menyebutkan cara CSS 3 untuk menggunakan pusat display:box.
Sintaks ini sudah usang dan tidak boleh digunakan lagi. [Lihat juga posting ini] .
Jadi hanya untuk kelengkapan di sini adalah cara terbaru untuk memusatkan pada CSS 3 menggunakan Modul Layout Kotak Fleksibel .
... dan Anda ingin memusatkan item Anda di dalam kotak, inilah yang Anda butuhkan pada elemen induk (.box):
.box {display: flex;flex-wrap: wrap;/* Optional. only if you want the items to wrap */justify-content: center;/* For horizontal alignment */align-items: center;/* For vertical alignment */}
.box {display: flex;flex-wrap: wrap;/* Optional. only if you want the items to wrap */justify-content: center;/* For horizontal alignment */align-items: center;/* For vertical alignment */}*{margin:0;padding:0;}
html,
body {height:100%;}.box {height:200px;display: flex;flex-wrap: wrap;justify-content: center;align-items: center;border:2px solid tomato;}.box div {margin:010px;width:100px;}.item1 {height:50px;background: pink;}.item2 {background: brown;height:100px;}.item3 {height:150px;background: orange;}
apa yang Anda maksud dengan "sintaks sudah usang", apakah sudah usang?
Konga Raju
6
Spesifikasi Flexbox telah melalui 3 revisi besar. Draf terbaru adalah mulai September 2012, yang secara resmi mencela semua konsep sebelumnya. Namun, dukungan browser sangat jarang (terutama browser Android lama): stackoverflow.com/questions/15662578/…
cimmanon
Ini bekerja untuk saya di Chrome ketika versi Justin Poliey tidak.
Vern Jensen
Bukan "justify-content: center;" untuk perataan vertikal dan "align-items: center;" untuk penyelarasan horizontal?
Wouter Vanherck
3
@WouterVanherck itu tergantung pada flex-directionnilainya. Jika 'baris' (default) - maka justify-content: center; untuk perataan horizontal (seperti yang saya sebutkan dalam jawaban) Jika 'kolom' - maka justify-content: center;untuk perataan vertikal.
Danield
140
Jika Anda tidak ingin menetapkan lebar tetap dan tidak ingin margin tambahan, tambahkan display: inline-blockke elemen Anda.
Pastikan Anda membaca jawaban ini terlebih dahulu sebelum Anda menerapkan solusi ini.
cimmanon
88
Atur widthdan atur margin-leftdan margin-rightke auto. Itu hanya untuk horizontal . Jika Anda menginginkan keduanya, Anda hanya perlu melakukannya dengan dua cara. Jangan takut untuk bereksperimen; tidak seperti Anda akan merusak apa pun.
Saya baru-baru ini harus memusatkan div "tersembunyi" (yaitu, display:none;) yang memiliki bentuk tabel di dalamnya yang perlu dipusatkan pada halaman. Saya menulis kode jQuery berikut untuk menampilkan div tersembunyi dan kemudian memperbarui konten CSS ke lebar tabel yang dihasilkan secara otomatis dan mengubah margin ke pusatnya. (Tampilan beralih dipicu dengan mengklik tautan, tetapi kode ini tidak perlu ditampilkan.)
CATATAN: Saya membagikan kode ini, karena Google membawa saya ke solusi Stack Overflow ini dan semuanya akan berfungsi kecuali bahwa elemen tersembunyi tidak memiliki lebar dan tidak dapat diubah ukurannya / dipusatkan sampai setelah mereka ditampilkan.
Tidak perlu properti perataan teks. Sama sekali tidak perlu.
Touhid Rahman
text-align sebenarnya diperlukan agar bisa bekerja dalam mode quick IE, jadi jika Anda tidak keberatan menambahkan sedikit ekspresi untuk mendukung browser lama, pertahankan di sana. (IE8 dengan aturan IE8 dan aturan IE7 keduanya bekerja tanpa penyelarasan teks, jadi mungkin hanya IE6 dan yang lebih tua yang peduli)
Satu mungkin perlu awalan vendor juga:-webkit-transform: translate(-50%,0); -moz-transform: translate(-50%,0); -ms-transform: translate(-50%,0); -khtml-transform: translate(-50%,0); -o-transform: translate(-50%,0);
Skippy le Grand Gourou
45
Chris Coyier yang menulis posting bagus tentang 'Centering in the Unknown' di blog-nya. Ini adalah kumpulan dari beberapa solusi. Saya memposting satu yang tidak diposting dalam pertanyaan ini. Ini memiliki lebih banyak dukungan browser daripada solusi Flexbox , dan Anda tidak menggunakan display: table;yang dapat merusak hal-hal lain.
/* This parent can be any width and height */.outer {
text-align: center;}/* The ghost, nudged to maintain perfect centering */.outer:before {
content:'.';
display:inline-block;
height:100%;
vertical-align: middle;
width:0;
overflow: hidden;}/* The element to be centered, can
also be of any width and height */.inner {
display:inline-block;
vertical-align: middle;
width:300px;}
Hanya mengatur aturan ini untuk #innerhanya: #inner { position:relative; left:50%; transform:translateX(-50%); }. Ini berfungsi untuk semua lebar.
Jose Rui Santos
33
Misalnya, lihat tautan ini dan cuplikan di bawah ini:
div#outer {height:120px;background-color: red;}
div#inner {width:50%;height:100%;background-color: green;margin:0 auto;text-align: center;/* For text alignment to center horizontally. */line-height:120px;/* For text alignment to center vertically. */}
Jika Anda memiliki banyak anak di bawah orangtua, maka konten CSS Anda harus seperti contoh ini pada biola .
Tampilan konten HTML menyukai ini:
<divid="outer"style="width:100%;"><divclass="inner"> Foo Text </div><divclass="inner"> Foo Text </div><divclass="inner"> Foo Text </div><divclass="inner"></div><divclass="inner"></div><divclass="inner"></div><divclass="inner"></div><divclass="inner"></div><divclass="inner"> Foo Text </div></div>
Dalam pengalaman saya, cara terbaik untuk memusatkan kotak baik secara vertikal maupun horizontal adalah dengan menggunakan wadah tambahan dan menerapkan properti berikut:
Seperti catatan biola Anda, #inner harus memiliki lebar yang ditetapkan di atasnya.
Michael Terry
#outertidak memerlukan apapun width:100%;seperti yang <div>selalu ada secara default width:100%. dan text-align:centerjuga tidak perlu sama sekali.
Mobarak Ali
27
Jika lebar konten tidak diketahui, Anda dapat menggunakan metode berikut . Misalkan kita memiliki dua elemen ini:
.outer - lebar penuh
.inner - tidak ada set lebar (tapi lebar maks bisa ditentukan)
Misalkan lebar elemen dihitung masing-masing 1000 piksel dan 300 piksel. Lanjutkan sebagai berikut:
Bungkus .innerdi dalam.center-helper
Buat .center-helperblok sebaris; itu menjadi ukuran yang sama dengan .innerlebar 300 piksel.
Dorong .center-helper50% ke kanan relatif ke induknya; ini menempatkan sebelah kiri pada 500 piksel wrt. luar.
Dorong .inner50% ke kiri relatif ke induknya; ini menempatkan kirinya di -150 piksel wrt. center helper yang berarti sebelah kirinya berada pada 500 - 150 = 350 piksel wrt. luar.
Setel overflow .outerke tersembunyi untuk mencegah scrollbar horizontal.
Demo:
body {font: medium sans-serif;}.outer {overflow: hidden;background-color: papayawhip;}.center-helper {display: inline-block;position: relative;left:50%;background-color: burlywood;}.inner {display: inline-block;position: relative;left:-50%;background-color: wheat;}
<divclass="outer"><divclass="center-helper"><divclass="inner"><h1>A div with no defined width</h1><p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.<br>
Duis condimentum sem non turpis consectetur blandit.<br>
Donec dictum risus id orci ornare tempor.<br>
Proin pharetra augue a lorem elementum molestie.<br>
Nunc nec justo sit amet nisi tempor viverra sit amet a ipsum.</p></div></div></div>
#container {
display: table;
width:<width of your container>;
height:<height of your container>;}#inner {
width:<width of your center div>;
display: table-cell;
margin:0auto;
text-align: center;
vertical-align: middle;}
Ini juga akan menyelaraskan #innervertikal. Jika Anda tidak ingin, hapus displaydan vertical-alignproperti;
Menerapkan text-align: centerkonten inline dipusatkan di dalam kotak baris. Namun karena div dalam telah secara default width: 100%Anda harus menetapkan lebar tertentu atau menggunakan salah satu dari berikut ini:
Harap dicatat: Flexbox kompatibel dengan sebagian besar browser tetapi tidak semua. Lihat di sini untuk daftar kompatibilitas browser yang lengkap dan terbaru.
transform: translatememungkinkan Anda memodifikasi ruang koordinat model pemformatan visual CSS. Menggunakannya, elemen dapat diterjemahkan, diputar, diskalakan, dan miring. Untuk memusatkan secara horizontal diperlukan position: absolutedan left: 50%.
Tag <center>adalah alternatif HTML untuk text-align: center. Ini berfungsi pada browser lama dan sebagian besar yang baru tetapi tidak dianggap sebagai praktik yang baik karena fitur ini sudah usang dan telah dihapus dari standar Web.
text-align berfungsi untuk penyelarasan teks dalam wadahnya bukan untuk wadahnya kepada induknya.
Lalit Kumar Maurya
saya mengujinya, saya masalah dengan mengatur anak ke pusat, harus ketika Anda memiliki lebih dari satu anak, lebih banyak margin kali: 0 jawaban font otomatis, tetapi, pusat perataan teks, untuk orang tua membuat anak ini menjadi pusat, bahkan jika mereka elemen dan tidak menjadi teks, tes dan lihat apa yang terjadi
Pnsadeghy
text-align center text saja. Anda benar saat ini tetapi ketika Anda menulis sebuah css kontainer yang berisi anak dengan lebar dan warna yang berbeda, kode Anda tidak berfungsi. Uji lagi !!!!
Lalit Kumar Maurya
Lihat contoh ini jsfiddle.net/uCdPK/2 dan katakan padaku apa pendapatmu tentang itu !!!!!
Jawaban:
Anda dapat menerapkan CSS ini ke bagian dalam
<div>
:Tentu saja, Anda tidak perlu mengatur
width
untuk50%
. Lebar kurang dari isi<div>
akan bekerja. Inilahmargin: 0 auto
yang dilakukan pemusatan yang sebenarnya.Jika Anda menargetkan Internet Explorer 8 (dan lebih baru), mungkin lebih baik memilikinya:
Ini akan membuat pusat elemen dalam secara horizontal dan berfungsi tanpa menetapkan yang spesifik
width
.Contoh kerja di sini:
sumber
margin-left: auto; margin-right: auto
saya pikir.margin:0 auto
: itu bisa menjadimargin: <whatever_vertical_margin_you_need> auto
margin horisontal kedua.Jika Anda tidak ingin menetapkan lebar tetap di bagian dalam
div
Anda bisa melakukan sesuatu seperti ini:Itu membuat bagian dalam
div
menjadi elemen inline yang dapat dipusatkantext-align
.sumber
float: none;
dan mungkin hanya diperlukan karena #inner telah mewarisifloat
salah satuleft
atauright
dari tempat lain di CSS Anda.text-align
sehingga Anda mungkin ingin menetapkan batintext-align
untukinitial
atau nilai lainnya.Pendekatan terbaik adalah dengan CSS 3 .
Model kotak:
Menurut kegunaan Anda, Anda juga dapat menggunakan
box-orient, box-flex, box-direction
properti.Flex :
Baca lebih lanjut tentang memusatkan elemen anak
Tautan 2
Tautan 3
Tautan 4
Dan ini menjelaskan mengapa model kotak adalah pendekatan terbaik :
sumber
-webkit
bendera untuk flexbox (display: -webkit-flex;
dan-webkit-align-items: center;
dan-webkit-justify-content: center;
)Misalkan lebar div Anda adalah 200 piksel:
Pastikan elemen induk diposisikan , yaitu relatif, tetap, absolut, atau lengket.
Jika Anda tidak tahu lebar div Anda, Anda bisa menggunakan
transform:translateX(-50%);
bukannya margin negatif.https://jsfiddle.net/gjvfxxdj/
Dengan CSS calc () , kode bisa menjadi lebih sederhana:
Prinsipnya masih sama; letakkan item di tengah dan ganti lebar.
sumber
Saya telah membuat contoh ini untuk menunjukkan bagaimana secara vertikal dan horizontal
align
.Kode dasarnya adalah ini:
dan...
Dan itu akan tetap di
center
bahkan ketika Anda mengubah ukuran layar Anda.sumber
Beberapa poster telah menyebutkan cara CSS 3 untuk menggunakan pusat
display:box
.Sintaks ini sudah usang dan tidak boleh digunakan lagi. [Lihat juga posting ini] .
Jadi hanya untuk kelengkapan di sini adalah cara terbaru untuk memusatkan pada CSS 3 menggunakan Modul Layout Kotak Fleksibel .
Jadi jika Anda memiliki markup sederhana seperti:
... dan Anda ingin memusatkan item Anda di dalam kotak, inilah yang Anda butuhkan pada elemen induk (.box):
Tampilkan cuplikan kode
Jika Anda perlu mendukung browser lama yang menggunakan sintaks lama untuk flexbox, inilah tempat yang bagus untuk dilihat.
sumber
flex-direction
nilainya. Jika 'baris' (default) - makajustify-content: center;
untuk perataan horizontal (seperti yang saya sebutkan dalam jawaban) Jika 'kolom' - makajustify-content: center;
untuk perataan vertikal.Jika Anda tidak ingin menetapkan lebar tetap dan tidak ingin margin tambahan, tambahkan
display: inline-block
ke elemen Anda.Kamu bisa menggunakan:
sumber
display: table;
sebelumnya. Apa fungsinya?Memusatkan div yang tinggi dan lebarnya tidak diketahui
Secara horizontal dan vertikal. Ini bekerja dengan browser yang cukup modern (Firefox, Safari / WebKit, Chrome, Internet Explorer 10, Opera, dll.)
Tinker dengannya lebih jauh di Codepen atau JSBin .
sumber
Itu tidak bisa dipusatkan jika Anda tidak memberi lebar. Jika tidak, maka akan, secara default, mengambil seluruh ruang horisontal.
sumber
width: fit-content;
danmargin: 0 auto
. Saya pikir ini bisa bekerja dengan lebar yang tidak diketahui.Properti kotak-align CSS 3
sumber
Atur
width
dan aturmargin-left
danmargin-right
keauto
. Itu hanya untuk horizontal . Jika Anda menginginkan keduanya, Anda hanya perlu melakukannya dengan dua cara. Jangan takut untuk bereksperimen; tidak seperti Anda akan merusak apa pun.sumber
Saya baru-baru ini harus memusatkan div "tersembunyi" (yaitu,
display:none;
) yang memiliki bentuk tabel di dalamnya yang perlu dipusatkan pada halaman. Saya menulis kode jQuery berikut untuk menampilkan div tersembunyi dan kemudian memperbarui konten CSS ke lebar tabel yang dihasilkan secara otomatis dan mengubah margin ke pusatnya. (Tampilan beralih dipicu dengan mengklik tautan, tetapi kode ini tidak perlu ditampilkan.)CATATAN: Saya membagikan kode ini, karena Google membawa saya ke solusi Stack Overflow ini dan semuanya akan berfungsi kecuali bahwa elemen tersembunyi tidak memiliki lebar dan tidak dapat diubah ukurannya / dipusatkan sampai setelah mereka ditampilkan.
sumber
Cara saya biasanya menggunakan posisi absolut:
Bagian luar tidak perlu propertites tambahan untuk bekerja.
sumber
Untuk Firefox dan Chrome:
Untuk Internet Explorer, Firefox, dan Chrome:
The
text-align:
properti adalah opsional untuk browser modern, tapi perlu di Internet Explorer quirks Mode untuk dukungan warisan browser.sumber
Menggunakan:
sumber
Solusi lain untuk ini tanpa harus menetapkan lebar untuk salah satu elemen adalah menggunakan
transform
atribut CSS 3 .Kuncinya adalah
translateX(-50%)
mengatur#inner
elemen 50 persen ke kiri lebar sendiri. Anda dapat menggunakan trik yang sama untuk perataan vertikal.Berikut adalah biola yang menunjukkan perataan horizontal dan vertikal.
Informasi lebih lanjut tentang Jaringan Pengembang Mozilla .
sumber
-webkit-transform: translate(-50%,0); -moz-transform: translate(-50%,0); -ms-transform: translate(-50%,0); -khtml-transform: translate(-50%,0); -o-transform: translate(-50%,0);
Chris Coyier yang menulis posting bagus tentang 'Centering in the Unknown' di blog-nya. Ini adalah kumpulan dari beberapa solusi. Saya memposting satu yang tidak diposting dalam pertanyaan ini. Ini memiliki lebih banyak dukungan browser daripada solusi Flexbox , dan Anda tidak menggunakan
display: table;
yang dapat merusak hal-hal lain.sumber
Baru-baru ini saya menemukan pendekatan:
Kedua elemen harus memiliki lebar yang sama agar berfungsi dengan benar.
sumber
#inner
hanya:#inner { position:relative; left:50%; transform:translateX(-50%); }
. Ini berfungsi untuk semua lebar.Misalnya, lihat tautan ini dan cuplikan di bawah ini:
Jika Anda memiliki banyak anak di bawah orangtua, maka konten CSS Anda harus seperti contoh ini pada biola .
Tampilan konten HTML menyukai ini:
Kemudian lihat contoh ini tentang biola .
sumber
Hanya memusatkan secara horizontal
Dalam pengalaman saya, cara terbaik untuk memusatkan kotak secara horizontal adalah dengan menerapkan properti berikut:
Wadah:
text-align: center;
Kotak konten:
display: inline-block;
Demo:
Lihat juga Fiddle ini !
Berpusat secara horizontal & vertikal
Dalam pengalaman saya, cara terbaik untuk memusatkan kotak baik secara vertikal maupun horizontal adalah dengan menggunakan wadah tambahan dan menerapkan properti berikut:
Wadah luar:
display: table;
Wadah batin:
display: table-cell;
vertical-align: middle;
text-align: center;
Kotak konten:
display: inline-block;
Demo:
Lihat juga Fiddle ini !
sumber
Cara termudah:
sumber
#outer
tidak memerlukan apapunwidth:100%;
seperti yang<div>
selalu ada secara defaultwidth:100%
. dantext-align:center
juga tidak perlu sama sekali.Jika lebar konten tidak diketahui, Anda dapat menggunakan metode berikut . Misalkan kita memiliki dua elemen ini:
.outer
- lebar penuh.inner
- tidak ada set lebar (tapi lebar maks bisa ditentukan)Misalkan lebar elemen dihitung masing-masing 1000 piksel dan 300 piksel. Lanjutkan sebagai berikut:
.inner
di dalam.center-helper
.center-helper
blok sebaris; itu menjadi ukuran yang sama dengan.inner
lebar 300 piksel..center-helper
50% ke kanan relatif ke induknya; ini menempatkan sebelah kiri pada 500 piksel wrt. luar..inner
50% ke kiri relatif ke induknya; ini menempatkan kirinya di -150 piksel wrt. center helper yang berarti sebelah kirinya berada pada 500 - 150 = 350 piksel wrt. luar..outer
ke tersembunyi untuk mencegah scrollbar horizontal.Demo:
sumber
Anda dapat melakukan sesuatu seperti ini
Ini juga akan menyelaraskan
#inner
vertikal. Jika Anda tidak ingin, hapusdisplay
danvertical-align
properti;sumber
Inilah yang Anda inginkan dengan cara terpendek.
JSFIDDLE
sumber
Perataan teks: tengah
Menerapkan
text-align: center
konten inline dipusatkan di dalam kotak baris. Namun karena div dalam telah secara defaultwidth: 100%
Anda harus menetapkan lebar tertentu atau menggunakan salah satu dari berikut ini:display: block
display: inline
display: inline-block
Tampilkan cuplikan kode
Margin: 0 otomatis
Menggunakan
margin: 0 auto
adalah pilihan lain dan lebih cocok untuk kompatibilitas browser yang lebih lama. Ini bekerja bersamadisplay: table
.Tampilkan cuplikan kode
Flexbox
display: flex
berperilaku seperti elemen blok dan menjabarkan isinya sesuai dengan model flexbox. Ini bekerja denganjustify-content: center
.Harap dicatat: Flexbox kompatibel dengan sebagian besar browser tetapi tidak semua. Lihat di sini untuk daftar kompatibilitas browser yang lengkap dan terbaru.
Tampilkan cuplikan kode
Mengubah
transform: translate
memungkinkan Anda memodifikasi ruang koordinat model pemformatan visual CSS. Menggunakannya, elemen dapat diterjemahkan, diputar, diskalakan, dan miring. Untuk memusatkan secara horizontal diperlukanposition: absolute
danleft: 50%
.Tampilkan cuplikan kode
<center>
(Sudah usang)Tag
<center>
adalah alternatif HTML untuktext-align: center
. Ini berfungsi pada browser lama dan sebagian besar yang baru tetapi tidak dianggap sebagai praktik yang baik karena fitur ini sudah usang dan telah dihapus dari standar Web.Tampilkan cuplikan kode
sumber
Anda dapat menggunakan
display: flex
untuk div luar Anda dan untuk memusatkan secara horizontal Anda harus menambahkanjustify-content: center
atau Anda dapat mengunjungi w3schools - CSS flex Property untuk lebih banyak ide.
sumber
Flex memiliki lebih dari 97% cakupan dukungan browser dan mungkin menjadi cara terbaik untuk menyelesaikan masalah semacam ini dalam beberapa baris:
sumber
Yah, saya berhasil menemukan solusi yang mungkin cocok untuk semua situasi, tetapi menggunakan JavaScript:
Berikut strukturnya:
Dan inilah cuplikan JavaScript:
Jika Anda ingin menggunakannya dalam pendekatan responsif, Anda dapat menambahkan yang berikut:
sumber
Metode ini juga berfungsi dengan baik:
Untuk bagian dalam
<div>
, satu-satunya syarat adalah kondisinyaheight
danwidth
tidak boleh lebih besar dari wadahnya.sumber
Ada satu opsi yang saya temukan:
Semua orang mengatakan untuk menggunakan:
Tetapi ada opsi lain. Setel properti ini untuk div induk. Ini berfungsi dengan baik kapan saja:
Dan lihat, anak pergi pusat.
Dan akhirnya CSS untuk Anda:
sumber