Saya ingin membuat tubuh memiliki 100% tinggi browser. Bisakah saya melakukannya menggunakan CSS?
Saya mencoba pengaturan height: 100%
, tetapi tidak berhasil.
Saya ingin mengatur warna latar belakang untuk sebuah halaman untuk mengisi seluruh jendela browser, tetapi jika halaman tersebut memiliki sedikit konten saya mendapatkan bilah putih jelek di bagian bawah.
Jawaban:
Coba atur tinggi elemen html ke 100% juga.
Badan melihat ke induknya (HTML) untuk cara mengukur properti dinamis, sehingga elemen HTML juga perlu diatur ketinggiannya.
Namun isi tubuh mungkin perlu berubah secara dinamis. Mengatur ketinggian minimum hingga 100% akan mencapai tujuan ini.
sumber
body {min-height}
versi maka Anda tidak dapat menggunakan.body-child{height: 100%}
trik.vh
->body { height: 100vh }
- periksa jawaban di sini stackoverflow.com/a/25829844/2680216Sebagai alternatif untuk mengatur ketinggian elemen
html
dan , Anda juga bisa menggunakan panjang viewport-persentase.body
100%
Dalam hal ini, Anda bisa menggunakan nilai
100vh
- yang merupakan ketinggian viewport.Contoh Di Sini
Ini didukung di sebagian besar browser modern - dukungan dapat ditemukan di sini .
sumber
margin: 0;
untuk menghindari bilah gulir vertikal persisten di sebelah kanan.Jika Anda memiliki gambar latar belakang maka Anda ingin mengatur ini sebagai gantinya:
Ini memastikan bahwa tag tubuh Anda dibiarkan terus bertambah ketika konten lebih tinggi dari viewport dan gambar latar belakang terus berulang / gulir / apa pun saat Anda mulai menggulir ke bawah.
Ingat, jika Anda harus mendukung IE6, Anda harus menemukan cara untuk masuk ke dalam
height:100%
tubuh, IE6 memperlakukanheight
sepertimin-height
itu.sumber
body{min-height: 100vh}
body { height: auto; }
agar scrollbar tidak ditampilkan di FireFox. selain itu, berfungsi dengan sempurna.Jika Anda ingin mempertahankan margin di badan dan tidak ingin bilah gulir, gunakan css berikut:
Pengaturan
body {min-height:100%}
akan memberi Anda bilah gulir.Lihat demo di http://jsbin.com/aCaDahEK/2/edit?html,output .
sumber
height: auto;
dalambody
klausa juga untuk scrollbar sekarang muncul.sumber
Setelah menguji berbagai skenario, saya yakin ini adalah solusi terbaik:
Ini dinamis karena elemen
html
-body
elemen akan berkembang secara otomatis jika isinya meluap. Saya menguji ini di versi terbaru dari Firefox, Chrome, dan IE 11.Lihat biola penuh di sini (untuk pembenci meja Anda di luar sana, Anda selalu dapat mengubahnya untuk menggunakan div):
https://jsfiddle.net/71yp4rh1/9/
Dengan itu, ada beberapa masalah dengan jawaban yang diposting di sini .
Menggunakan CSS di atas akan menyebabkan html dan elemen tubuh TIDAK secara otomatis meluas jika isinya meluap seperti yang ditunjukkan di sini:
https://jsfiddle.net/9vyy620m/4/
Saat Anda menggulir, perhatikan latar belakang berulang? Hal ini terjadi karena ketinggian elemen tubuh BUKAN meningkat karena meja anaknya meluap. Mengapa tidak berkembang seperti elemen blok lainnya? Saya tidak yakin. Saya pikir browser salah menangani ini.
Mengatur ketinggian minimum 100% pada tubuh seperti ditunjukkan di atas menyebabkan masalah lain. Jika Anda melakukan ini, Anda tidak dapat menentukan bahwa div anak atau tabel mengambil persentase tinggi seperti yang ditunjukkan di sini:
https://jsfiddle.net/aq74v2v7/4/
Semoga ini bisa membantu seseorang. Saya pikir browser menangani ini dengan tidak benar. Saya berharap tinggi tubuh secara otomatis menyesuaikan tumbuh lebih besar jika anak-anak meluap. Namun, itu tampaknya tidak terjadi ketika Anda menggunakan tinggi 100% dan lebar 100%.
sumber
height: 100vh
bukan solusi juga. Mengatur wadah atas Anda menjadi100vh
tinggi dan100vw
dapat menyebabkan masalah jika wadah tersebut memiliki bilah gulir - maka akan lebih besar dari seharusnya (dan mungkin menyebabkan bilah gulir terlihat tidak perlu). Hal iniheight: 100vh
juga menyebabkan masalah bagi kami pada perangkat Android yang lebih baru (misalnya Xiaomi Mi 9 dengan Android 9), di mana wadah akan lebih besar dari layar itu sendiri, dan akan membuat bilah gulir vertikal yang tidak perlu ke badan dokumen.Apa yang saya gunakan pada awal setiap file CSS yang saya gunakan adalah sebagai berikut:
Margin 0 memastikan bahwa elemen HTML dan BODY tidak diposisikan secara otomatis oleh browser untuk memiliki ruang di sebelah kiri atau kanannya.
Padding 0 memastikan bahwa elemen-elemen HTML dan BODY tidak secara otomatis mendorong semuanya ke bawah atau ke kanan karena default browser.
Varian lebar dan tinggi disetel ke 100% untuk memastikan bahwa peramban tidak mengubah ukurannya untuk mengantisipasi sebenarnya memiliki margin atau bantalan otomatis, dengan set min dan maks untuk berjaga-jaga jika terjadi hal-hal aneh dan tidak dapat dijelaskan terjadi, meskipun Anda mungkin tidak membutuhkannya.
Solusi ini juga berarti bahwa, seperti yang saya lakukan ketika saya mulai pada HTML dan CSS beberapa tahun yang lalu, Anda tidak akan harus memberikan pertama Anda
<div>
seorangmargin:-8px;
untuk membuatnya sesuai di sudut jendela browser.Sebelum saya memposting, saya melihat proyek CSS fullscreen saya yang lain dan menemukan bahwa semua yang saya gunakan hanya
body{margin:0;}
ada dan tidak ada yang lain, yang telah bekerja dengan baik selama 2 tahun saya telah mengerjakannya.Semoga jawaban terinci ini membantu, dan saya merasakan sakit Anda. Di mata saya, sangat bodoh bahwa browser harus menetapkan batas yang tidak terlihat di sisi kiri dan kadang-kadang bagian atas elemen tubuh / html.
sumber
width: 100%
elemen tubuh dan html? Ya, saya mengerti, bahwa dari sudut pandang praktis,body { margin: 0; }
harus cukup dalam banyak kasus. Saya hanya ingin mengerti lebih menyeluruh.Pembaruan cepat
Solusi yang lebih baik dengan CSS hari ini
sumber
overflow: auto
di sini lakukan keajaiban. Btw saya menggunakan Chrome.Sini:
sumber
Anda juga dapat menggunakan JS jika diperlukan
sumber
Mencoba
sumber
width: 100%
elemen tubuh dan html? Ya, saya mengerti, bahwa dari sudut pandang praktis,body { margin: 0; }
harus cukup dalam banyak kasus. Saya hanya ingin mengerti lebih menyeluruh.Silakan periksa ini:
Atau coba metode baru Viewport height:
Viewport: Jika Anda menggunakan viewport berarti apa pun ukuran layar konten akan datang tinggi penuh untuk layar.
sumber
width: 100%
elemen tubuh dan html?Jika Anda tidak ingin pekerjaan pengeditan file CSS Anda sendiri dan tentukan sendiri aturan tinggi badan, kerangka kerja CSS yang paling umum juga menyelesaikan masalah ini dengan elemen tubuh yang mengisi keseluruhan halaman, di antara masalah-masalah lain, nyaman dengan banyak ukuran viewports.
Misalnya, kerangka kerja Tacit CSS menyelesaikan masalah ini di luar kotak, di mana Anda tidak perlu mendefinisikan aturan dan kelas CSS apa pun dan Anda cukup memasukkan file CSS dalam HTML Anda.
sumber
Bekerja untuk semua browser utama: FF, Chrome, Opera, IE9 +. Bekerja dengan gambar dan gradien Latar Belakang. Scrollbar tersedia sesuai kebutuhan konten.
sumber
Saya akan menggunakan ini
Peramban akan digunakan
min-height: 100vh
dan jika entah bagaimana peramban sedikit lebih tuamin-height: 100%
akan menjadi mundur.Ini
overflow: auto
diperlukan jika Anda ingin badan dan html memperbesar tinggi ketika Anda mengubah ukuran layar (misalnya ukuran ponsel)sumber
Hanya dengan 1 baris CSS ... Anda bisa menyelesaikannya.
sumber
100vh
sebenarnya bukan yang Anda harapkan untuk iOS Safari.semua jawaban 100% benar dan dijelaskan dengan baik, tetapi saya melakukan sesuatu yang baik dan sangat sederhana untuk membuatnya responsif.
di sini elemen akan mengambil 100% ketinggian tampilan port tetapi ketika datang ke tampilan seluler itu tidak terlihat baik khususnya pada tampilan potret (ponsel), jadi ketika port tampilan semakin kecil elemen akan runtuh dan tumpang tindih satu sama lain. jadi untuk membuatnya sedikit responsif di sini adalah kode. semoga seseorang akan mendapat bantuan dari ini.
di sini adalah Demo JSfiddle.
sumber
Sini Perbarui
sumber
Tentang ruang ekstra di bagian bawah: apakah halaman Anda merupakan aplikasi ASP.NET? Jika demikian, mungkin ada pembungkus hampir semua yang ada di markup Anda. Jangan lupa untuk menata formulir juga. Menambahkan
overflow:hidden;
ke formulir mungkin menghapus ruang ekstra di bagian bawah.sumber
sumber
width: 100%
elemen tubuh dan html? Ya, saya mengerti, bahwa dari sudut pandang praktis,body { margin: 0; }
harus cukup dalam banyak kasus. Saya hanya ingin mengerti lebih menyeluruh.CSS3 memiliki metode baru.
Itu membuat ViewPort 100% sama dengan tinggi.
Jadi Kode Anda seharusnya
sumber