Saya berjuang dengan masalah ini cukup lama sekarang. Masalahnya dapat dilihat pada perangkat seluler (Android dan iOS), beberapa perangkat mungkin perlu sedikit diperbesar. Di PC, saya juga dapat mereproduksi bug ini di browser Chrome saat beralih ke mode seluler. Di bawah ini adalah kode yang digunakan untuk mereproduksi bug:
<!DOCTYPE html>
<html lang="en">
<head>
<style>
.top {
height: 100px;
background-color: #553213;
}
.middle {
height: 100px;
background-color: #553213;
}
.bottom {
height: 100px;
background-color: #553213;
}
</style>
</head>
<body>
<div style="width:300px; height: 300px">
<div class="top"></div>
<div class="middle"></div>
<div class="bottom"></div>
</div>
</body>
</html>
Hasil yang diharapkan adalah div yang dipenuhi dengan warna # 553213. Namun, pada beberapa perangkat seluler, mereka menampilkan garis tambahan (atau celah) di antara ketiga div tersebut.
Om iPhone saya
Di PC saya, menggunakan browser Chrome dengan mode seluler
Adakah yang tahu apa yang terjadi di sini? Setiap ide tentang bagaimana hal itu terjadi dan bagaimana cara memperbaikinya akan sangat dihargai.
Jawaban:
Saya menemukan jawaban ini .
Jadi solusinya adalah menambahkan
margin-top: -1px;
untuktop
,middle
, danbottom
kelas.Dan terlihat bagus di ponsel dan PC. The
div
s tinggi tidak berubah. Masih ada300px
.sumber
Saya kira ini karena skala halaman. Coba tambahkan tag meta ini ke kepala:
<meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.0; user-scalable=0;">
sumber
Setelah membaca komentar saya melihat bahwa Madison Courto punya saran
yang dikonfirmasi untuk menyelesaikan masalah aktual, tetapi telah menyebabkan masalah pada bagian lain halaman. Jadi, mari kita terapkan ide ini hanya untuk div yang sebenarnya:
sumber
Coba dengan
background
. Ini berfungsi dengan baik di ponsel saya:Saya tidak tahu apa penyebab sebenarnya. tetapi ketika saya mencoba di bawah ini maka warna garis putih diubah menjadi hitam maka saya mendapat ide ini:
klik di atas atau bawah div
sumber
Alasan untuk masalah ini mungkin karena cara
display
block
,inline-block
gaya ditangani oleh browser yang berbeda di layar yang berbeda.misalnya,
inline-block
elemen akan memiliki ruang kecil otomatis di sebelah kanan. orang biasanya menyelesaikan ini menggunakan negatifmargin-left
.Secara default, a
div
adalah ablock
elemen level.Ruang bawah ini yang Anda hadapi juga bisa karena cara elemen tingkat blok ditangani.
Seperti memecahkan
inline-block
ruang dengan negatifmargin-left
,block
ruang level ini bisa diselesaikan menggunakanmargin-top
ataudiv
gaya menjaditable
,table-cell
ketik atauflexbox
ketik menggunakan csssumber
sumber
tambahkan garis kecil untuk menyembunyikan masalah ini:
sumber
Coba tambahkan margin-bottom ke divs atas dan tengah.
Semoga ini membantu.
sumber
Gunakan display dan margin bawah untuk memperbaiki gaya.
sumber
Gunakan display dan margin bawah untuk memperbaiki gaya.
sumber