Misalkan Anda memiliki beberapa gaya dan markup:
ul
{
white-space: nowrap;
overflow-x: visible;
overflow-y: hidden;
/* added width so it would work in the snippet */
width: 100px;
}
li
{
display: inline-block;
}
<div>
<ul>
<li>1</li> <li>2</li> <li>3</li>
<li>4</li> <li>5</li> <li>6</li>
<li>7</li> <li>8</li> <li>9</li>
<li>1</li> <li>2</li> <li>3</li>
<li>4</li> <li>5</li> <li>6</li>
<li>7</li> <li>8</li> <li>9</li>
<li>1</li> <li>2</li> <li>3</li>
<li>4</li> <li>5</li> <li>6</li>
<li>7</li> <li>8</li> <li>9</li>
</ul>
</div>
Ketika Anda melihat ini. The <ul>
memiliki scroll bar di bagian bawah meskipun saya sudah ditentukan nilai-nilai terlihat dan tersembunyi untuk overflow x / y.
(diamati pada Chrome 11 dan opera (?))
Saya menduga pasti ada beberapa spesifikasi w3c atau sesuatu yang mengatakan ini terjadi tetapi untuk kehidupan saya, saya tidak dapat menemukan alasannya.
UPDATE: - Saya menemukan cara untuk mencapai hasil yang sama dengan menambahkan elemen lain yang melilit ul
. Coba lihat.
overflow-x hidden;
menghapus gulir tetapi karena saya memerlukan elemen li untuk menyembunyikan perbatasan di bagian bawah sehingga memberikan efek putus-putus yang diinginkan. Saya tidak mengerti mengapaoverflow-x: visible
membuat bilah gulir. Seharusnya tidak afaik.overflow: hidden;
dan seorang anak dimasukkan di sekitar<ul>
makhlukoverflow: visible
.Jawaban:
Setelah beberapa pencarian serius sepertinya saya telah menemukan jawaban untuk pertanyaan saya:
dari: http://www.brunildo.org/test/Overflowxy2.html
juga spesifikasi W3C mengatakan:
Versi pendek:
Jika Anda menggunakan
visible
untuk salah satu danoverflow-x
atauoverflow-y
sesuatu selainvisible
untuk yang lain,visible
nilainya diartikan sebagaiauto
.sumber
overflow-x:visible
selamaoverflow-y:hidden
tanpa hack orang tua / anak? Tempat tidur yang cukup, IMO.overflow-y: visible
. Boo CSS!peretasan murah lainnya, yang tampaknya berhasil:
style="padding-bottom: 250px; margin-bottom: -250px;"
pada elemen di mana overflow vertikal mendapatkan cutoff, dengan250
mewakili piksel sebanyak yang Anda butuhkan untuk dropdown, dll.sumber
position: relative
atau menggunakan pembungkus tidak mungkin, ini adalah satu-satunya solusi yang berhasil, meskipun itu juga membutuhkan penambahan banyak margin jelek ke elemen anak di dalam elemen yang ingin saya seteloverflow-x: hidden
untuk mengkompensasi peretasan lapisan. Ini menyelamatkan saya, jadi terima kasih!Saya awalnya menemukan cara CSS untuk mem-bypass ini ketika menggunakan plugin Cycle jQuery. Siklus menggunakan JavaScript untuk mengatur slide saya
overflow: hidden
, jadi ketika mengatur gambar saya kewidth: 100%
gambar akan terlihat terpotong secara vertikal, jadi saya memaksa mereka untuk terlihat dengan!important
dan untuk menghindari menampilkan animasi slide keluar dari kotak saya mengaturoverflow: hidden
ke div wadah dari meluncur. Semoga ini berhasil untuk Anda.UPDATE - Solusi Baru:
Masalah asli -> http://jsfiddle.net/xMddf/1/ (Bahkan jika saya menggunakannya
overflow-y: visible
menjadi "otomatis" dan sebenarnya "gulir".)Solusi baru -> http://jsfiddle.net/xMddf/2/ (Saya menemukan solusi menggunakan pembungkus div untuk menerapkan
overflow-x
danoverflow-y
elemen DOM yang berbeda seperti yang disarankan oleh James Khoury tentang masalah penggabunganvisible
danhidden
satu elemen DOM.)sumber
overflow-x:visible;
danoverflow-y:hidden
. Bukan sebaliknya.overflow-x
dan-y
: biola diperbarui .Saya telah mengalami masalah ini ketika mencoba membuat sidebar posisi tetap dengan konten yang dapat digulir secara vertikal dan membuat anak - anak yang diposisikan secara absolut untuk ditampilkan di luar batas sidebar .
Pendekatan saya terdiri dari penerapan yang terpisah:
overflow: visible
properti untuk elemen sidebaroverflow-y: auto
properti untuk sidebar wrapper batinSilakan periksa contoh di bawah ini atau codepen online .
sumber
auto
bukanhidden
.position
Saya menggunakan
content+wrapper
pendekatan ... tapi saya melakukan sesuatu yang berbeda dari yang disebutkan sejauh ini: saya memastikan bahwa batas pembungkus saya TIDAK sejajar dengan batas konten ke arah yang saya ingin terlihat .CATATAN penting: Itu cukup mudah untuk mendapatkan
content+wrapper, same-bounds
pendekatan untuk bekerja pada satu browser atau lain tergantung pada berbagai kombinasi css dariposition
,overflow-*
, dll ... tapi aku tak pernah bisa menggunakan pendekatan yang untuk mendapatkan mereka semua benar (Edge, Chrome, Safari,. ..)Tetapi ketika saya memiliki sesuatu seperti:
... semua browser senang.
sumber
Sekarang ada cara baru untuk mengatasi masalah ini - jika Anda menghapus posisi: relatif dari wadah yang perlu memiliki overflow-y terlihat, Anda dapat memiliki overflow-y terlihat dan overflow-x tersembunyi, dan sebaliknya (memiliki overflow- x terlihat dan meluap-y tersembunyi, pastikan wadah dengan properti yang terlihat tidak diposisikan relatif).
Lihat posting ini dari Trik CSS untuk detail lebih lanjut - ini bekerja untuk saya: https://css-tricks.com/popping-hidden-overflow/
sumber