Saya memiliki div dengan dua gambar dan sebuah h1
. Semuanya perlu disejajarkan secara vertikal di dalam div, di samping satu sama lain.
Salah satu gambar perlu absolute
diposisikan dalam div.
Apa yang dibutuhkan CSS untuk bekerja di semua browser umum?
<div id="header">
<img src=".." ></img>
<h1>testing...</h1>
<img src="..."></img>
</div>
html
css
vertical-alignment
Abdu
sumber
sumber
Jawaban:
Wow, masalah ini sangat populer. Ini didasarkan pada kesalahpahaman di
vertical-align
properti. Artikel yang luar biasa ini menjelaskannya:Memahami
vertical-align
, atau "Bagaimana (Tidak) Memusatkan Konten Secara Vertikal" oleh Gavin Kistner.“Bagaimana cara memusatkan pada CSS” adalah alat web yang bagus yang membantu untuk menemukan atribut pemusatan CSS yang diperlukan untuk situasi yang berbeda.
Singkatnya (dan untuk mencegah pembusukan tautan) :
vertical-align: middle
. Namun, "konteks" bukan tinggi kontainer induk keseluruhan, itu adalah ketinggian dari baris teks yang mereka gunakan . Contoh jsfiddleabsolute
dan menentukanheight
,margin-top
dantop
posisinya. contoh jsfiddleline-height
untuk mengisi tingginya. Metode ini cukup fleksibel dalam pengalaman saya. contoh jsfiddlesumber
vertical-align: middle
) adalah bahwa Anda harus menentukan ketinggian tetap. Sangat tidak mungkin untuk Desain Web Responsif .inline-block
dantable-cell
elemen. Jika Anda mengalami masalah dengan ini, coba sesuaikanline-height
elemen wadah (yaitu konteks) karena digunakan dalamvertical-align
perhitungan kotak garis.Sekarang dukungan flexbox meningkat, CSS ini diterapkan pada elemen yang mengandung akan memusatkan secara vertikal item yang terkandung:
Gunakan versi awalan jika Anda juga harus menargetkan Explorer 10, dan browser Android lama (<4.4):
sumber
align-items
bagianSaya menggunakan kode yang sangat sederhana ini:
HTML:
CSS:
Jelas, apakah Anda menggunakan a
.class
atau a#id
, hasilnya tidak akan berubah.sumber
Ini bekerja untuk saya:
sumber
margin : 0 auto
, itu tidak akan berhasil karenadisplay: table-cell
sumber
justify-content: center
saya tetap kurangnya pemusatan horizontalSebuah teknik dari seorang teman saya:
HTML:
CSS:
DEMO di sini
sumber
Untuk memposisikan elemen blok ke tengah (berfungsi di IE9 ke atas), perlu pembungkus
div
:sumber
Menyelaraskan bagaimana ? Bagian atas gambar selaras dengan bagian atas teks?
Benar-benar diposisikan relatif terhadap DIV? Mungkin Anda bisa membuat sketsa apa yang Anda cari ...?
fd telah menjelaskan langkah-langkah untuk penentuan posisi absolut, serta menyesuaikan tampilan
H1
elemen sedemikian rupa sehingga gambar akan muncul sejalan dengannya. Untuk itu, saya akan menambahkan bahwa Anda dapat menyelaraskan gambar dengan menggunakanvertical-align
gaya:... ini akan menyatukan header dan gambar, dengan tepi atas rata. Opsi perataan lainnya ada; lihat dokumentasi . Anda juga mungkin merasa bermanfaat untuk menjatuhkan DIV dan memindahkan gambar ke dalam
H1
elemen - ini memberikan nilai semantik ke wadah, dan menghilangkan kebutuhan untuk menyesuaikan tampilanH1
:sumber
Gunakan formula ini, dan itu akan bekerja selalu tanpa celah:
sumber
Hampir semua metode perlu menentukan ketinggian, tetapi seringkali kita tidak memiliki ketinggian.
Jadi di sini adalah trik 3 baris CSS3 yang tidak perlu tahu ketinggiannya.
Ini didukung bahkan di IE9.
dengan awalan vendornya:
Sumber: http://zerosixthree.se/vertical-align-anything-with-just-3-lines-of-css/
sumber
Dengan dua cara, Anda dapat menyelaraskan elemen secara vertikal dan horizontal
1. Bootstrap 4.3.X
untuk penyelarasan vertikal:
d-flex align-items-center
untuk penyelarasan horisontal:
d-flex justify-content-center
2. CSS3
sumber
Trik saya adalah meletakkan di dalam div tabel dengan 1 baris dan 1 kolom, atur 100% lebar dan tinggi, dan properti vertical-align: middle.
Fiddle: http://jsfiddle.net/joan16v/sbqjnn9q/
sumber
# 3 cara untuk membuat div anak tengah di div orang tua
Metode Transform / Terjemahkan
Demo
sumber
Menggunakan CSS ke pusat vertikal, Anda bisa membiarkan wadah luar bertindak seperti tabel, dan konten sebagai sel tabel. Dalam format ini objek Anda akan tetap terpusat. :)
Saya bersarang beberapa objek di JSFiddle sebagai contoh, tetapi gagasan intinya adalah seperti ini:
HTML
CSS
Contoh beberapa objek:
HTML
CSS
Hasil
https://jsfiddle.net/martjemeyer/ybs032uc/1/
sumber
Secara default, h1 adalah elemen blok dan akan di-render pada baris setelah img pertama, dan akan menyebabkan img kedua muncul di baris setelah blok.
Untuk menghentikan hal ini terjadi, Anda dapat mengatur h1 agar memiliki perilaku aliran sebaris:
Sedangkan untuk benar-benar memposisikan img di dalam div , Anda perlu mengatur div yang berisi memiliki "ukuran yang diketahui" sebelum ini akan berfungsi dengan baik. Dalam pengalaman saya, Anda juga perlu mengubah atribut posisi dari default - position: relative berfungsi untuk saya:
Jika Anda bisa membuatnya berfungsi, Anda mungkin ingin mencoba secara progresif menghapus atribut tinggi, lebar, posisi dari div.header untuk mendapatkan atribut minimal yang diperlukan untuk mendapatkan efek yang Anda inginkan.
MEMPERBARUI:
Berikut adalah contoh lengkap yang berfungsi di Firefox 3:
sumber
Kami dapat menggunakan perhitungan fungsi CSS untuk menghitung ukuran elemen dan kemudian memposisikan elemen anak sesuai.
Contoh HTML:
Dan CSS:
Demo dibuat di sini: https://jsfiddle.net/xnjq1t22/
Solusi ini bekerja dengan baik
div
height
dan responsifwidth
juga.Catatan: Fungsi calc tidak diuji untuk kompatibilitas dengan browser lama.
sumber
Per hari ini, saya telah menemukan solusi baru untuk meluruskan beberapa baris teks secara vertikal dalam div menggunakan CSS3 (dan saya juga menggunakan sistem grid bootstrap v3 untuk mempercantik UI), yaitu sebagai berikut:
Sesuai pemahaman saya, orang tua langsung dari elemen yang mengandung teks harus memiliki ketinggian. Saya harap ini akan membantu Anda juga. Terima kasih!
sumber
Cara favorit baru saya untuk melakukannya adalah dengan kisi CSS:
sumber
Cukup gunakan tabel satu sel di dalam div! Cukup atur tinggi sel dan tabel dan dengan hingga 100% dan Anda dapat menggunakan penyelarasan vertikal.
Tabel satu sel di dalam div menangani perataan vertikal dan kompatibel mundur ke Zaman Batu!
sumber
Saya telah menggunakan solusi berikut (tanpa posisi dan tidak ada ketinggian garis) sejak lebih dari setahun, ia bekerja dengan IE 7 dan 8 juga.
sumber
Ini adalah solusi pribadi saya untuk elemen i di dalam div
Contoh JSFiddle
HTML
CSS
sumber
Bagi saya, itu bekerja seperti ini:
Elemen "a" dikonversi menjadi tombol, menggunakan kelas Bootstrap, dan sekarang dipusatkan secara vertikal di dalam "div" luar.
sumber
sumber
Hanya ini:
Tabel satu sel di dalam div menangani perataan vertikal dan kompatibel mundur ke Zaman Batu!
sumber
sumber
Berikut ini hanyalah pendekatan (responsif) yang lain:
http://jsfiddle.net/herrfischerhamburg/JcVxz/
sumber
Saya seorang. NET guy yang baru saja masuk ke pemrograman web. Saya tidak menggunakan CSS (well, sedikit). Saya menggunakan sedikit JavaScript untuk menyelesaikan pemusatan vertikal bersama dengan fungsi .css jQuery.
Saya hanya memposting semuanya dari pengujian saya. Ini mungkin tidak terlalu elegan, tetapi sejauh ini berhasil.
sumber
...
atau CSS
Cakupan Browser
sumber
table-cell
, yang membuatnyavertical-align: middle;
bekerja. Bahkan lebih baik, ini bekerja tanpa memerlukan pembungkus bersarang / buffer buffer, dan berfungsi baik untuk teks dan gambar (atau keduanya), dan Anda tidak perlu mengubah properti posisi.