Mengikuti tidak berhasil. Apa kesalahan yang saya lakukan. <html> <head> <style> #over img {display: block; margin-left: auto; margin-right: otomatis; } </style> </head> <body> <div id = "over" style = "posisi: absolut; lebar: 100%; tinggi: 100%"> <img src = " img8a.flixcart.com/image/ tablet / f / k / t / ... "> </div> </body> </html>
nizam.sp
1
Jika kita tidak menggunakan display: blockstandarnya adalah display: inlinesesuai dengan w3schools.com/cssref/pr_class_display.asp . Mengapa kita perlu menggunakan blok? Saya bekerja untuk saya, tetapi tidak yakin mengapa blok akan memusatkan img dan inline tidak.
user3731622
karena inline tidak bergerak dalam barisan, itu memang, sesuai. jadi margin otomatis tidak efektif.
Solusi yang sangat singkat dan mudah, tetapi tampaknya hanya berfungsi dengan lebar dan tinggi tidak-persentase yang tetap. Itu bekerja dengan mengapung jadi +1 untuk itu. - jsfiddle.net/2s2nY/2
magnetronnie
1
tapi ini hanya melakukan vertical-align tapi bukan horizontal kan?
V-SHY
1
Ini tidak akan berfungsi jika lebar gambar lebih besar dari lebar div.
Davuz
5
Jika kita menghapus display: table-cell; itu bekerja dengan sempurna.
Ahesanali Suthar
103
Ini juga dapat dilakukan menggunakan tata letak Flexbox:
UKURAN STATIS
.parent {display: flex;height:300px;/* Or whatever */background-color:#000;}.child {width:100px;/* Or whatever */height:100px;/* Or whatever */margin: auto;/* Magic! */}
*{padding:0;margin:0;}#over
{position:absolute;width:100%;height:100%;text-align: center;/*handles the horizontal centering*/}/*handles the vertical centering*/.Centerer
{display: inline-block;height:100%;vertical-align: middle;}.Centered
{display: inline-block;vertical-align: middle;}
Catatan: solusi ini baik untuk menyelaraskan elemen apa pun dalam elemen apa pun. untuk IE7, ketika menerapkan .Centeredkelas pada elemen blok, Anda harus menggunakan trik lain untuk membuatnya inline-blockbekerja. (itu karena IE6 / IE7 tidak bisa digunakan dengan inline-block pada elemen blok)
@deathlock sangat terkenal. tetapi saya menargetkan browser IE lama (yang tidak mendukung elemen pseudo).
avrahamcool
1
Bukan, tapi HTML seharusnya hanya digunakan untuk struktur, bukan presentasi. Pekerjaan itu dibiarkan untuk CSS, maka elemen pseudo.
deathlock
1
Apa maksud Anda "Tidak merusak aliran dokumen (tidak ada pelampung atau penentuan posisi absolut)" ?? Apa #over { position:absolute; width:100%; height:100%;?
Rodrigo
1
@Rodrigo memang, jika Anda tidak perlu menargetkan browser yang lebih lama, flexbox ini adalah pendekatan yang disarankan.
Saya juga harus menambahkan css induk tetapi kode Anda berfungsi dengan baik! posisi: relatif; lebar: 100%; mengapung: kiri; overflow: disembunyikan; min-height: 189px;
user2593040
10
Pada dasarnya, mengatur margin kanan dan kiri ke otomatis akan menyebabkan gambar menjadi rata tengah.
benar-benar tidak memiliki ruang di antara mereka (seperti yang terlihat di sini).
Hanya dasar untuk menghindari kesenjangan (inline block inherent) di antara mereka. Kesenjangan ini dapat dilihat antara setiap dua kata yang saya tulis sekarang! :-) Jadi .. semoga ini membantu beberapa dari Anda.
Saya sudah mencoba banyak pendekatan tetapi hanya yang ini bekerja untuk beberapa elemen inline di dalam wadah. Berikut adalah kode untuk menyelaraskan semua yang ada di div di tengah.
CSS
.divContainer
{
vertical-align: middle;
text-align: center;<!--If you want horizontal center alignment -->}.divContainer >*{
vertical-align: middle;}
Css3 cinta! Terima kasih. Namun, perlu dicatat bahwa ini hanya akan berfungsi di browser modern (kecuali IE). Semua browser lain tidak akan berpengaruh.
Neel
2
banyak jawaban menyarankan untuk digunakan margin:0 autotetapi ini hanya berfungsi ketika elemen yang Anda coba buat terpusat tidak mengambang di kiri atau kanan, yaitu floatatribut css tidak disetel. Untuk melakukan ini, terapkan displayatribut ke table-celldan kemudian terapkan margin kiri dan kanan ke otomatis sehingga gaya Anda akan terlihat sepertistyle="display:table-cell;margin:0 auto;"
Jawaban yang ditandai untuk ini tidak akan menyelaraskan gambar secara vertikal. Solusi yang cocok untuk browser modern adalah flexbox. Wadah fleksibel dapat dikonfigurasi untuk menyelaraskan item-itemnya baik secara horizontal maupun vertikal.
Solusi ini menjawab pertanyaan dan berhasil, tidak seperti jawaban yang ditandai. Mungkin pemilih yang turun bisa merinci keputusan mereka untuk menurunkan suara?
WDuffy
6
Dari antrian ulasan : Bolehkah saya meminta Anda untuk menambahkan beberapa konteks di sekitar kode sumber Anda. Jawaban khusus kode sulit dipahami. Ini akan membantu penanya dan pembaca di masa mendatang jika Anda dapat menambahkan lebih banyak informasi dalam posting Anda.
RBT
1
Itu tidak membenarkan downvote. Jawabannya secara teknis benar dan akan membantu pembaca di masa depan. Saya telah memperbarui badan jawaban untuk menghormati aturan rumah, tetapi mungkin solusi yang lebih langsung harus diterapkan oleh tim inti karena mengidentifikasi kode hanya jawaban adalah tugas yang sepele.
Cara sederhana adalah membuat gaya terpisah untuk div dan gambar dan kemudian memposisikannya secara independen. Katakanlah jika saya ingin mengatur posisi gambar saya menjadi 50%, maka saya akan memiliki kode yang terlihat seperti berikut ini ....
Katakan saja jika itu bekerja dengan semua jenis browser, meskipun ini adalah hal dasar yang harus didukung oleh setiap browser (jika tidak jangan menyebutnya browser)
Jawaban:
JSFiddle
sumber
display: block;
adalah perangkap saya. TnXdisplay: block
standarnya adalahdisplay: inline
sesuai dengan w3schools.com/cssref/pr_class_display.asp . Mengapa kita perlu menggunakan blok? Saya bekerja untuk saya, tetapi tidak yakin mengapa blok akan memusatkan img dan inline tidak.sumber
Ini juga dapat dilakukan menggunakan tata letak Flexbox:
UKURAN STATIS
UKURAN DINAMIS
Saya menemukan contoh di artikel ini , yang sangat membantu menjelaskan cara menggunakan tata letak.
sumber
Menurut saya, Anda juga ingin gambar itu diposisikan secara vertikal di dalam wadah. (Saya tidak melihat jawaban apa pun asalkan)
Biola bekerja:
HTML
CSS
Catatan: solusi ini baik untuk menyelaraskan elemen apa pun dalam elemen apa pun. untuk IE7, ketika menerapkan
.Centered
kelas pada elemen blok, Anda harus menggunakan trik lain untuk membuatnyainline-block
bekerja. (itu karena IE6 / IE7 tidak bisa digunakan dengan inline-block pada elemen blok)sumber
span
, Anda bisa menggunakan pseudo-element:before
: jsfiddle.net/xaliber/cj6zhtp0#over { position:absolute; width:100%; height:100%;
?sumber
Anda dapat melakukan ini dengan mudah dengan menggunakan properti display: flex css
sumber
sumber
Saya masih memiliki beberapa masalah dengan solusi lain yang disajikan di sini. Akhirnya ini bekerja paling baik untuk saya:
css3:
Anda dapat membaca lebih lanjut tentang pendekatan itu di halaman ini .
sumber
Pada dasarnya, mengatur margin kanan dan kiri ke otomatis akan menyebabkan gambar menjadi rata tengah.
sumber
Ini akan menjadi pendekatan yang lebih sederhana
sumber
Jawaban Daaawx bekerja, tapi saya pikir akan lebih bersih jika kita menghilangkan inline css.
sumber
mengatur img untuk ditampilkan: inline-block sambil mengatur div superior ke text-align: center akan melakukan pekerjaan juga
EDIT: untuk orang-orang yang bermain dengan tampilan: inline-block >>> jangan lupa bahwa misalnya dua divs suka
benar-benar tidak memiliki ruang di antara mereka (seperti yang terlihat di sini).
Hanya dasar untuk menghindari kesenjangan (inline block inherent) di antara mereka. Kesenjangan ini dapat dilihat antara setiap dua kata yang saya tulis sekarang! :-) Jadi .. semoga ini membantu beberapa dari Anda.
sumber
SEDERHANA. 2018. FlexBox. Untuk Memeriksa Dukungan Browser - Dapatkah Saya Menggunakan
Solusi Minimal:
Untuk mendapatkan dukungan browser seluas mungkin:
sumber
Saya sudah mencoba banyak pendekatan tetapi hanya yang ini bekerja untuk beberapa elemen inline di dalam wadah. Berikut adalah kode untuk menyelaraskan semua yang ada di div di tengah.
CSS
HTML
Kode contoh ada di sini: https://jsfiddle.net/yogendrasinh/2vq0c68m/
sumber
File CSS
sumber
Coba kode minimal ini:
Dan CSS:
sumber
Ya, kita di tahun 2016 ... mengapa tidak menggunakan flexbox? Ini juga responsif. Nikmati.
sumber
banyak jawaban menyarankan untuk digunakan
margin:0 auto
tetapi ini hanya berfungsi ketika elemen yang Anda coba buat terpusat tidak mengambang di kiri atau kanan, yaitufloat
atribut css tidak disetel. Untuk melakukan ini, terapkandisplay
atribut ketable-cell
dan kemudian terapkan margin kiri dan kanan ke otomatis sehingga gaya Anda akan terlihat sepertistyle="display:table-cell;margin:0 auto;"
sumber
sumber
HTML:
CSS:
sumber
Untuk pusat secara horizontal
Metode lain:
Untuk pusat secara vertikal, cukup cantumkan:
sumber
Ini bekerja untuk saya:
sumber
ini berhasil bagi saya.
'Catatan: tidak memiliki kelas css yang dikaitkan dengan' BrandImage 'dalam kasus ini
CSS:
sumber
Ini bekerja untuk saya ketika Anda harus memusatkan gambar dan div orangtua Anda ke gambar memiliki seluruh layar. yaitu tinggi: 100% dan lebar: 100%
sumber
Gunakan penentuan posisi. Berikut ini bekerja untuk saya ...
Dengan zoom ke tengah gambar (gambar mengisi div):
Tanpa memperbesar ke tengah gambar (gambar tidak mengisi div):
sumber
Jawaban yang ditandai untuk ini tidak akan menyelaraskan gambar secara vertikal. Solusi yang cocok untuk browser modern adalah flexbox. Wadah fleksibel dapat dikonfigurasi untuk menyelaraskan item-itemnya baik secara horizontal maupun vertikal.
sumber
Anda dapat melihat pada solusi ini:
Menengahkan gambar secara horizontal dan vertikal dalam sebuah kotak
sumber
Cara sederhana adalah membuat gaya terpisah untuk div dan gambar dan kemudian memposisikannya secara independen. Katakanlah jika saya ingin mengatur posisi gambar saya menjadi 50%, maka saya akan memiliki kode yang terlihat seperti berikut ini ....
sumber
Ubah nilai ketinggian untuk kebutuhan Anda.
sumber
Ini seharusnya bekerja.
PENTING UNTUK UJI: Untuk Menjalankan cuplikan kode klik tombol kiri RUN cuplikan kode , lalu taut kanan halaman penuh
sumber