Satu-satunya (dan yang terbaik cross-browser) cara yang saya tahu adalah dengan menggunakan aplikasi yang inline-block penolong dengan height: 100% dan vertical-align: middle pada kedua elemen.
Jadi ada solusi:
.frame {
height: 25px; /* Equals maximum image height */
width: 160px;
border: 1px solid red;
white-space: nowrap; /* This is required unless you put the helper span closely near the img */
text-align: center;
margin: 1em 0;
}
.helper {
display: inline-block;
height: 100%;
vertical-align: middle;
}
img {
background: #3A6F9A;
vertical-align: middle;
max-height: 25px;
max-width: 160px;
}
Atau, jika anda don't ingin memiliki elemen tambahan di browser modern dan don't pikiran menggunakan Internet Explorer ekspresi, anda dapat menggunakan pseudo-elemen dan menambahkannya ke Internet Explorer menggunakan ekspresi nyaman, yang berjalan hanya sekali per elemen, sehingga tidak ada't menjadi masalah kinerja:
Solusi dengan sebelum dan ungkapan() untuk Internet Explorer: http://jsfiddle.net/kizu/4RPFa/4571/
Ketika anda memiliki dua inline-block unsur-unsur yang dekat satu sama lain, anda dapat menyelaraskan satu sama lain's sisi, sehingga dengan vertical-align: middle anda'll mendapatkan sesuatu seperti ini:
Ketika anda memiliki sebuah blok dengan tetap tinggi (di px, mereka atau lainnya mutlak unit), anda dapat mengatur ketinggian blok batin di %.
Jadi, menambahkan satu inline-block dengan height: 100% di blok dengan tetap tinggi akan menyelaraskan lain inline-block elemen di dalamnya (<img/> dalam kasus anda) secara vertikal dekat ini.
// position: relative; - in .frame holds the absolute element within the frame
// top: 0; bottom: 0; left: 0; right: 0; - this is key for centering a component
// margin: auto; - centers the image horizontally & vertically
Untuk yang lebih modern, solusi, dan jika tidak ada kebutuhan untuk dukungan browser lawas, anda bisa lakukan ini:
.frame {
display: flex;
/**
Uncomment 'justify-content' below to center horizontally.
✪ Read below for a better way to center vertically and horizontally.
**/
/* justify-content: center; */
align-items: center;
}
img {
height: auto;
/**
✪ To center this image both vertically and horizontally,
in the .frame rule above comment the 'justify-content'
and 'align-items' declarations,
then uncomment 'margin: auto;' below.
**/
/* margin: auto; */
}
/* Styling stuff not needed for demo */
.frame {
max-width: 900px;
height: 200px;
margin: auto;
background: #222;
}
p {
max-width: 900px;
margin: 20px auto 0;
}
img {
width: 150px;
}
Saya dihapus elemen gambar sama sekali dan mengaturnya sebagai latar belakang div dengan class .frame
Ini setidaknya bekerja dengan baik pada Internet Explorer 8, Firefox 6 dan Chrome 13.
Aku memeriksa, dan solusi ini tidak akan bekerja untuk mengecilkan gambar yang lebih besar dari 25 piksel tinggi. Ada properti yang disebut background-size yang tidak mengatur ukuran elemen, tetapi itu adalah CSS 3 yang akan konflik dengan Internet Explorer 7 persyaratan.
Saya akan saran anda untuk mengulang browser anda prioritas dan desain terbaik untuk browser yang tersedia, atau mendapatkan beberapa server-side code untuk mengubah ukuran gambar jika anda'd ingin menggunakan solusi ini.
Kunci tamu adalah display: table-cell; untuk .frame. Div.frame ditampilkan sebagai inline dengan hal ini, sehingga anda perlu untuk membungkusnya dalam sebuah elemen blok.
Ini bekerja di Firefox, Opera, Chrome, Safari dan Internet Explorer 8 (dan kemudian).
UPDATE
Untuk Internet Explorer 7 kita perlu menambahkan CSS expression:
Saya tidak yakin tentang Internet Explorer, tetapi di bawah Firefox dan Chrome, jika anda memiliki sebuah img dalam div wadah, berikut CSS konten harus bekerja. Setidaknya bagi saya itu bekerja dengan baik:
Mungkin itu adalah masalah utama dengan HTML anda. Anda're tidak menggunakan tanda kutip ketika anda mendefinisikan c'lass&tinggi gambar` dalam HTML anda.
Ketika saya bekerja di sekitar dengan img tag's meninggalkan 3 piksel untuk 2 piksel ruang dari atas. Sekarang saya mengurangi line-height, dan's bekerja.
Kadang-kadang hal itu harus diselesaikan dengan menampilkan seperti tabel/tabel-sel. Misalnya, cepat layar judul. Ini adalah cara yang direkomendasikan oleh W3 juga. Saya sarankan anda cek link ini disebut Berpusat blok atau image dari W3C.org.
Tips yang digunakan di sini adalah:
Posisi mutlak wadah ditampilkan sebagai tabel
Vertikal sejajar ke pusat konten yang ditampilkan sebagai tabel-sel
Official Website : https://esistemindo.com
Belajar Pemrograman Web (HTML CSS Javascript PHP MySQL)
Grup Belajar Pemrograman Web.
HTML + PHP + Javascript + MySQL DB
Semoga menjadi forum belajar, menambah wawasan, peningkatan mutu personal kita semua.
Css Indonesia
group ini membahas tentang Css dan web design
Bagi yg mau memperdalam Css atau ingin memulai Css atau bahkan Javascript dan html, bisa download aplikasi di bawah ini :
https://play.google.com/store/apps/details?id=com.sololearn
Thank you