Saya menggunakan gradien radial sebagai latar belakang pada halaman web saya, seperti:
background-image: -webkit-gradient(radial, 100% 100%, 10, 90% 90%, 600, from(#ccc), to(#000));
Ini bekerja, tetapi ketika konten tidak mengisi seluruh halaman, gradien terputus. Bagaimana saya bisa membuat <body>
elemen mengisi seluruh halaman, selalu?
body { width: 100%; height: 100%; }
tidak berhasil?body { width: 100%; height: 100%; }
tidak berhasil. Saya kira saya harus menerapkannya<html>
juga.Jawaban:
sumber
html { height: 100%; }
sebenarnya.html { height: 100%; }
jugabody { height: 100%; }
tidak cukup bagi saya (Opera disertakan sebagai tes) Apa yang paling berhasil adalahhtml, body { min-height: 100%; }
Menggunakan tinggi alih-alih ketinggian minimum meninggalkan putih latar belakang tanpa warna latar yang diterapkan ketika saya memperluas beberapa div yang dapat dilipat di tengah halaman saya.min-height
memperbaikinya.100%
ke100vh
.Di situs kami, kami memiliki halaman di mana kontennya statis, dan halaman di mana ia dimuat dengan AJAX. Pada satu halaman (halaman pencarian), ada kasus-kasus ketika hasil AJAX akan lebih dari mengisi halaman, dan kasus-kasus di mana itu tidak akan memberikan hasil. Agar gambar latar belakang untuk mengisi halaman dalam semua kasus, kami harus menerapkan CSS berikut:
height
untukhtml
danmin-height
untukbody
.sumber
width: 100%;
.margin: 0;
sudah cukup, tidak perlu menentukan unit mana yang Anda gunakan nolKarena tidak ada jawaban lain yang bekerja untuk saya, saya memutuskan untuk memposting ini sebagai jawaban bagi orang lain yang mencari solusi yang juga menemukan masalah yang sama. Baik html dan body perlu diatur dengan
min-height
atau gradien tidak akan memenuhi tinggi badan.Saya menemukan komentar Stephen P untuk memberikan jawaban yang benar untuk ini.
Ketika saya memiliki tinggi html (atau html dan tubuh) diatur ke 100%,
sumber
Saya harus menerapkan 100% untuk html dan tubuh.
sumber
Coba gunakan unit viewport (vh, vm) di tingkat tubuh
html, body {margin: 0; bantalan: 0; } body {min-height: 100vh; }
Gunakan unit vh untuk margin horizontal, paddings, dan borders pada bodi dan kurangi dari nilai min-height.
Saya mendapatkan hasil yang aneh menggunakan unit vh, vm pada elemen-elemen di dalam tubuh, terutama saat mengubah ukuran.
sumber
Saya pikir cara yang paling benar, adalah mengatur css untuk ini:
sumber
Saya mencoba semua solusi di atas dan saya tidak mendiskreditkan salah satu dari mereka, tetapi dalam kasus saya, mereka tidak berhasil.
Bagi saya, masalah ini disebabkan karena
<header>
tag memilikimargin-top
5em dan<footer>
margin-bottom 5em. Saya menghapusnya dan malah menaruh beberapapadding
(masing-masing atas dan bawah). Saya tidak yakin apakah mengganti margin adalah perbaikan yang ideal untuk masalah tersebut, tetapi intinya adalah bahwa, jika elemen pertama dan terakhir dalam Anda<body>
memiliki beberapa margin, Anda mungkin ingin melihatnya dan menghapusnya.Tag saya
html
danbody
memiliki gaya berikutsumber
Jika Anda memiliki pembatas atau bantalan, maka solusinya
menghasilkan rendering yang tidak sempurna
Untuk memperbaikinya dengan adanya pembatas atau bantalan
gunakan saja
seperti yang ditunjukkan Martin
overflow: hidden
tidak diperlukan.(2018 - diuji dengan Chrome 69 dan IE 11)
sumber
body
tag. Tanpa batas itu,body
akan mengisi tepat 100% dari viewport, Anda dapat melihatnya dengan warna latar misalnya. Jawaban yang benar untuk pertanyaan itu diterima 7 tahun yang lalu masih valid.Ini bekerja untuk saya:
sumber