ฉันจะลบแถบเลื่อนแนวนอนใน div ได้อย่างไร


128

เมื่อฉันตั้งค่าoverflow: scrollฉันจะได้แถบเลื่อนแนวนอนและแนวตั้ง

มีวิธีลบแถบเลื่อนแนวนอนใน div หรือไม่?

คำตอบ:


208
overflow-x: hidden;


ขอบคุณที่ช่วยประหยัดเวลาได้มาก ใครสามารถทำเครื่องหมายนี้เป็นคำตอบที่ยอมรับได้โปรด
Nagarajan SR

5
มันเป็นทางออกที่ไม่ดี เพราะในกรณีนี้คุณเพียงแค่ซ่อนการเลื่อนแนวนอนในคอนเทนเนอร์ แต่ถ้าคอนเทนเนอร์นี้กว้างเกินไปเนื้อหาของคุณจะไม่พอดีกับคอนเทนเนอร์ของคุณ
Alex Filatov


21

ด้วยoverflow-y: scrollแถบเลื่อนแนวตั้งจะอยู่ที่นั่นเสมอแม้ว่าจะไม่จำเป็นก็ตาม หากคุณต้องการให้ y-scrollbar มองเห็นได้เฉพาะเมื่อจำเป็นฉันพบว่าสิ่งนี้ใช้ได้:

.mydivclass {overflow-x: hidden; overflow-y: auto;}


13

เพิ่มโค้ดนี้ใน CSS ของคุณ มันจะปิดการใช้งานแถบเลื่อนแนวนอน

html, body {
    max-width: 100%;
    overflow-x: hidden;
}

10

ไม่มีการเลื่อน (โดยไม่ระบุ x หรือ y):

.your-class {
   overflow: hidden;
}

ลบการเลื่อนแนวนอน:

.your-class {
   overflow-x: hidden;
}

ลบการเลื่อนแนวตั้ง:

.your-class {
   overflow-y: hidden;
}

OP ต้องเลื่อนโดยไม่มีแถบเลื่อน
T04435

8

ในการซ่อนแถบเลื่อนแนวนอนเราสามารถเลือกแถบเลื่อนของ div ที่ต้องการและตั้งค่าเป็น display: none;

สิ่งหนึ่งที่ควรทราบก็คือสิ่งนี้จะใช้ได้กับเบราว์เซอร์ที่ใช้ WebKit เท่านั้น (เช่น Chrome) เนื่องจากไม่มีตัวเลือกดังกล่าวสำหรับ Mozilla

ในการเลือกแถบเลื่อนให้ใช้ ::-webkit-scrollbar

ดังนั้นรหัสสุดท้ายจะเป็นดังนี้:

div::-webkit-scrollbar {
  display: none;
}



2

ใช้:

overflow: auto;

สิ่งนี้จะแสดงแถบเลื่อนแนวตั้งและเฉพาะในกรณีที่มีการล้นในแนวตั้งมิฉะนั้นจะถูกซ่อนไว้

หากคุณมีทั้ง x และ y ล้นแถบเลื่อนทั้ง x และ y จะแสดง

หากต้องการซ่อนแถบเลื่อน x (แนวนอน) แม้ว่าจะมีเพียงแค่เพิ่ม:

overflow-x: hidden;

body {
    font-family: sans-serif;
}

.nowrap {
    white-space: nowrap;
}

.container {
    height: 200px;
    width: 300px;
    padding 10px;
    border: 1px solid #444;

    overflow: auto;
    overflow-x: hidden;
}
<div class="container">
<ul>
  <li>Item 1</li>
  <li>Item 2</li>
  <li>Item 3</li>
  <li>Item 4</li>
  <li>Item 5</li>
  <li>Item 6</li>
  <li>Item 7</li>
  <li class="nowrap">Item 8 and some really long text to make it overflow horizontally.</li>
  <li>Item 9</li>
  <li>Item 10</li>
  <li>Item 11</li>
  <li>Item 12</li>
  <li>Item 13</li>
  <li>Item 14</li>
  <li>Item 15</li>
  <li>Item 16</li>
  <li>Item 17</li>
</ul>
</div>




-3

ฉันเคยมีปัญหาเกี่ยวกับการใช้งาน

overflow: none;

แต่ฉันรู้ว่า CSS ไม่ชอบมันจริงๆและมันก็ไม่ได้ผล 100% ตามที่ฉันต้องการ

อย่างไรก็ตามนี่เป็นวิธีแก้ปัญหาที่สมบูรณ์แบบเนื่องจากเนื้อหาของฉันไม่ควรมีขนาดใหญ่กว่าที่ควรจะเป็นและสิ่งนี้ได้แก้ไขปัญหาที่ฉันมีแล้ว

overflow: auto;
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.