Katakanlah saya memiliki kode CSS dan HTML berikut:
#header {
height: 150px;
}
<div id="header">
<h1>Header title</h1>
Header content (one or multiple lines)
</div>
Bagian tajuk adalah ketinggian tetap, tetapi konten tajuk dapat berubah.
Saya ingin konten tajuk disejajarkan secara vertikal ke bagian bawah tajuk, sehingga baris terakhir dari teks "menempel" ke bagian bawah tajuk.
Jadi jika hanya ada satu baris teks, itu akan seperti:
----------------------------- | Judul tajuk | | | | konten tajuk (menghasilkan satu baris) -----------------------------
Dan jika ada tiga baris:
----------------------------- | Judul tajuk | | konten tajuk (yang demikian | banyak hal yang sempurna | membentang lebih dari tiga baris) -----------------------------
Bagaimana ini bisa dilakukan dalam CSS?
sumber
p
elemen, atau setidaknya aspan
display: table-cell
, atautable-row
, atautable
. Anda tidak perlu lagi menggunakan tabel untuk tata letak murni.Gunakan posisi CSS:
Seperti yang dicatat cletus , Anda perlu mengidentifikasi konten tajuk untuk membuatnya berfungsi.
sumber
width = '100%'
konten tajuk<span>
elemendisplay: inline;
secara default, yang tidak mengambil lebar penuh wadah. Perbaikan yang paling tepat adalah mengubah rentang menjadi<div>
, yang merupakan elemen blok secara default.Jika Anda tidak khawatir tentang browser lawas, gunakan flexbox.
Elemen induk perlu jenis tampilan yang disetel agar lentur
Kemudian Anda mengatur align-self elemen anak ke flex-end.
Inilah sumber yang saya pelajari: http://css-tricks.com/snippets/css/a-guide-to-flexbox/
sumber
Saya menggunakan properti ini dan berfungsi!
sumber
table-cell
memecah banyak hal. Seperti sistem grid Bootstrap.col-md-12
tidak akan memberi Anda lebar 100% lagi.Setelah berjuang dengan masalah yang sama ini untuk beberapa waktu, saya akhirnya menemukan solusi yang memenuhi semua persyaratan saya:
Solusinya hanya butuh satu
<div>
, yang saya sebut "pelurus":CSS
html
Trik ini berfungsi dengan membuat div tinggi dan kurus, yang mendorong garis dasar teks ke bagian bawah wadah.
Berikut adalah contoh lengkap yang mencapai apa yang diminta OP. Saya telah membuat "bottom_aligner" tebal dan merah untuk tujuan demonstrasi saja.
CSS:
HTML:
sumber
::before
aturan, yang menghilangkan kebutuhan elemen tambahan. Kami menggunakan flex pada akhirnya, tetapi ini berguna ketika Anda tidak bisa.height
kotak / wadah dan orang tuanya diatur (ke px atau% atau apa pun).Cara modern untuk melakukannya adalah menggunakan flexbox . Lihat contoh di bawah ini. Anda bahkan tidak perlu membungkus
Some text...
dengan tag HTML apa pun, karena teks yang langsung terkandung dalam wadah fleksibel dibungkus dengan item fleksibel anonim.Jika hanya ada beberapa teks dan Anda ingin menyelaraskan secara vertikal ke bagian bawah wadah.
sumber
position:absolute;
. Solusi ini bekerja dengan sempurna untuk kasus saya!Elemen blok sebaris atau sebaris dapat disejajarkan ke bagian bawah elemen tingkat blok jika ketinggian garis induk / elemen blok lebih besar dari elemen sebaris. *
markup:
css:
* pastikan Anda dalam mode standar
sumber
sumber
<h1>
ada di dalam<p>
atau<div>
akan saya gunakanjustify-content: space-between
.Anda cukup mencapai flex
sumber
Jika Anda memiliki beberapa item tinggi dinamis, gunakan nilai tampilan CSS dari tabel dan sel-tabel:
HTML
CSS
Saya telah membuat demo JSBin di sini: http://jsbin.com/INOnAkuF/2/edit
Demo ini juga memiliki contoh cara mensejajarkan secara vertikal menggunakan teknik yang sama.
sumber
Berikut adalah solusi lain menggunakan flexbox tetapi tanpa menggunakan flex-end untuk penyejajaran bawah. Idenya adalah untuk set
margin-bottom
pada h1 untuk auto untuk mendorong konten yang tersisa ke bawah:Kita juga dapat melakukan hal yang sama
margin-top:auto
pada teks tetapi dalam kasus ini kita perlu membungkusnya di dalamdiv
atauspan
:sumber
Anda tidak perlu + mutlak relatif untuk ini. Sangat mungkin menggunakan posisi relatif untuk wadah dan data. Ini adalah bagaimana Anda melakukannya.
Asumsikan ketinggian data Anda akan menjadi
x
. Wadah Anda relatif dan catatan kaki juga relatif. Yang harus Anda lakukan adalah menambah data AndaData Anda akan selalu di bagian bawah wadah Anda. Bekerja bahkan jika Anda memiliki wadah dengan ketinggian dinamis.
HTML akan seperti ini
CSS akan seperti ini
Contoh langsung di sini
Semoga ini membantu.
sumber
bottom: -webkit-calc(-100% + x);
sedang dilakukan?Inilah cara fleksibel untuk melakukannya. Tentu saja, itu tidak didukung oleh IE8, seperti yang dibutuhkan pengguna 7 tahun yang lalu. Tergantung pada apa yang Anda butuhkan untuk mendukung, beberapa di antaranya dapat dihilangkan.
Namun, alangkah baiknya jika ada cara untuk melakukan ini tanpa wadah luar, hanya memiliki teks menyelaraskan dirinya di dalam dirinya sendiri.
sumber
solusi satu-baris yang sangat sederhana adalah menambahkan baris-heigth ke div, mengingat semua teks div akan berada di bawah.
CSS:
HTML:
perlu diingat bahwa ini adalah solusi praktis dan cepat ketika Anda hanya ingin teks di dalam div diturunkan, jika Anda perlu menggabungkan gambar dan hal-hal, Anda harus kode CSS yang sedikit lebih kompleks dan responsif
sumber
jika Anda dapat mengatur ketinggian div pembungkus konten (# header-content seperti yang ditunjukkan pada balasan orang lain), alih-alih seluruh header #, mungkin Anda juga dapat mencoba pendekatan ini:
HTML
CSS
tampilkan di codepen
sumber
Tampaknya bekerja:
HTML: Saya di bagian bawah
css:
sumber
Semua jawaban ini dan tidak ada yang berhasil untuk saya ... Saya bukan ahli flexbox, tapi ini cukup mudah untuk diketahui, sederhana dan mudah dimengerti dan digunakan. Untuk memisahkan sesuatu dari sisa konten, masukkan div kosong dan biarkan tumbuh untuk mengisi ruang.
https://jsfiddle.net/8sfeLmgd/1/
Ini bereaksi seperti yang diharapkan ketika konten bawah tidak berukuran tetap juga ketika wadah tidak berukuran tetap.
sumber
Saya telah menemukan cara yang jauh lebih sederhana dari apa yang telah disebutkan.
Atur tinggi div header. Kemudian di dalamnya, beri style pada
H1
tag Anda sebagai berikut:Saya sedang mengerjakan situs untuk klien, dan desainnya mengharuskan teks berada di bagian bawah div tertentu. Saya telah mencapai hasil menggunakan dua baris ini, dan itu berfungsi dengan baik. Juga, jika teks berkembang, padding akan tetap sama.
sumber
Saya menemukan solusi ini dimainkan pada templat start bootstrap default
sumber
sumber
coba dengan:
coba ubah% untuk memperbaikinya. Contoh: 120% atau 90% ... dll.
sumber
Situs yang baru saja saya lakukan untuk klien meminta agar teks footer adalah kotak tinggi, dengan teks di bagian bawah saya mencapai ini dengan padding sederhana, harus bekerja untuk semua browser.
sumber
padding: 0 30px
agak berlebihan, Anda mungkin harus meletakkanpadding: 30px
2 deklarasi lainnya.padding: 60px 30px 8px;
,,padding: 60px 30px 8px 30px;
empatpadding-
aturan eksplisit , atau bahkan saran @ TheWaxMann semuanya lebih unggul - dan saya bersedia dan dapat membantahnya ;-)Contoh lintas-browser yang sempurna mungkin adalah yang ini di sini:
http://www.csszengarden.com/?cssfile=/213/213.css&page=0
Idenya adalah untuk menampilkan div di bagian bawah dan juga membuatnya menempel di sana. Seringkali pendekatan sederhana akan membuat div lengket gulir ke atas dengan konten utama.
Berikut ini adalah contoh minimal yang berfungsi penuh. Perhatikan bahwa tidak diperlukan tipu daya penyisipan div. Banyak BR hanya untuk memaksa bilah gulir muncul:
Jika Anda bertanya-tanya kode Anda mungkin tidak berfungsi pada IE, ingatlah untuk menambahkan tag DOCTYPE di bagian atas. Sangat penting untuk ini bekerja di IE. Juga, ini harus menjadi tag pertama dan tidak ada yang muncul di atasnya.
sumber
<br />
tag Anda ...content-type
akan menghasilkan browser membuat kesalahan parsing xml.Tampaknya bekerja:
Menggunakan lebih sedikit membuat memecahkan teka-teki CSS jauh lebih seperti pengkodean daripada seperti ... Saya suka CSS. Ini adalah kesenangan nyata ketika Anda dapat mengubah seluruh tata letak (tanpa merusaknya :) hanya dengan mengubah satu parameter.
sumber
Solusi 2015
http://codepen.io/anon/pen/qERMdx
sama-sama
sumber