Katakanlah saya memiliki tombol bootstrap dengan ikon font-mengagumkan dan beberapa teks:
<div>
<i class='icon icon-2x icon-camera'></i>
hello world
</div>
Bagaimana cara membuat teks tampak terpusat vertikal? Teks disejajarkan dengan tepi bawah ikon sekarang: http://jsfiddle.net/V7DLm/1/
EDIT: Saya punya solusi yang memungkinkan : http://jsfiddle.net/CLdeG/1/ tapi rasanya agak hacky - memperkenalkan tag p ekstra, menggunakan pull-left dan display: table. Mungkin seseorang bisa menyarankan cara yang lebih mudah.
html
css
font-awesome
Paul
sumber
sumber
Jawaban:
Saya hanya harus melakukan ini sendiri, Anda harus melakukannya sebaliknya.
Tentu saja Anda tidak dapat menggunakan gaya sebaris dan menargetkannya dengan kelas css Anda sendiri. Tapi ini bekerja dengan cara copy paste.
Lihat di sini: Penjajaran vertikal teks dan ikon di tombol
Namun jika itu terserah saya, saya tidak akan menggunakan ikon-2x. Dan cukup tentukan ukuran font sendiri, seperti berikut ini
untuk contoh kerja, silakan lihat JsFiddle
sumber
Saya menggunakan ikon di sebelah teks 99% dari waktu jadi saya membuat perubahan secara global:
Tambahkan 3x, 4x, dll ke definisi yang sama sesuai kebutuhan.
sumber
vertical-align: middle;
- saya mungkin kehilangan sesuatu di sini. Tolong jelaskan jika demikian.vertical-align: middle
, artinya jika Anda menggunakanblock
elemen . Jika Anda menggunakaninline
,inline-block
atautable-cell
, Anda harus baik. MDN:vertical-align
Setelah mempertimbangkan semua opsi yang disarankan, solusi terbersih tampaknya adalah mengatur ketinggian garis dan meluruskan segalanya vertikal:
Lihat Demo Jsfiddle
CSS:
sumber
jika hal-hal tidak sesuai, sederhana
line-height: inherit;
melalui CSS pada elemen i.fa tertentu yang mengalami masalah penyelarasan bisa melakukan trik cukup sederhana.Anda juga bisa menggunakan solusi global, yang karena kekhususan CSS yang sedikit lebih tinggi akan mengesampingkan aturan .fa FontAwesome yang menentukan
line-height: 1
tanpa memerlukan!important
properti:Pastikan saja bahwa solusi global di atas tidak menyebabkan masalah lain di tempat-tempat di mana Anda mungkin juga menggunakan ikon FontAwesome.
sumber
opsi flexbox - font mengagumkan 4.7 dan di bawah
FA 4.x URL yang Diinangi - https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css
biola
http://jsfiddle.net/Hastig/V7DLm/180/
menggunakan flex dan font awesome 5
FA 5.x URL yang Diinangi - https://use.fontawesome.com/releases/v5.0.8/js/all.js
biola
https://jsfiddle.net/3bpjvof2/
sumber
Cara paling sederhana adalah mengatur properti vertical-align css ke tengah
sumber
.svg-inline--fa
untuk FontAwesome 5fa-clock
di kelas?Ini bekerja dengan baik untuk saya.
sumber
Coba atur ikon Anda sebagai
height: 100%
Anda tidak perlu melakukan apa pun dengan bungkusnya (misalnya, tombol Anda).
Ini membutuhkan Font Awesome 5. Tidak yakin apakah itu berfungsi untuk versi FA yang lebih lama.
Perhatikan bahwa ikon tersebut sebenarnya adalah
svg
grafik.Demo
sumber
Bagi mereka yang menggunakan Bootstrap 4 sederhana:
sumber
Pilihan lain untuk menyempurnakan ketinggian garis ikon adalah dengan menggunakan persentase
vertical-align
properti. Biasanya, 0% adalah bagian bawah, dan 100% di bagian atas, tetapi orang dapat menggunakan nilai negatif atau lebih dari seratus untuk membuat efek yang menarik.sumber
Saya akan membungkus teks dalam sehingga Anda dapat menargetkannya secara terpisah. Sekarang jika Anda mengapung keduanya dan kiri, Anda dapat menggunakan ketinggian garis untuk mengontrol spasi vertikal. Mengaturnya ke ketinggian yang sama dengan (30px) akan sejajar tengahnya. Lihat di sini .
Markup Baru:
CSS baru:
sumber
vertical-align: middle
ikon dan teks. Dengan begitu Anda tidak membuat asumsi tentang ketinggian ikon dan ada lebih sedikit CSS.Saat menggunakan flexbox, penjajaran vertikal ikon-ikon mengagumkan font di sebelah teks bisa sangat sulit. Saya mencoba margin dan bantalan, tetapi itu memindahkan semua item. Saya mencoba keberpihakan flex yang berbeda seperti center, start, baseline, dll, tetapi tidak berhasil. Cara termudah dan terbersih untuk menyesuaikan hanya ikon adalah dengan mengaturnya mengandung div ke
position: relative; top: XX;
Ini melakukan pekerjaan dengan sempurna.sumber
Nah, pertanyaan ini ditanyakan bertahun-tahun yang lalu. Saya pikir teknologi telah berubah sedikit dan kompatibilitas browser jauh lebih baik. Anda dapat menggunakan vertical-align tetapi saya akan mempertimbangkan bahwa beberapa yang kurang dapat diukur dan kurang dapat digunakan kembali. Saya akan merekomendasikan pendekatan flexbox .
Berikut adalah contoh yang sama dengan poster asli yang digunakan tetapi dengan flexbox. Ini gaya elemen tunggal. Jika ukuran tombol berubah karena alasan apa pun, maka akan terus terpusat secara vertikal dan horizontal.
Contoh: JsFiddle
sumber
Cukup tentukan
vertical-align
properti untuk elemen ikon:sumber