HTML: จะสร้าง DIV ที่มีแถบเลื่อนแนวตั้งสำหรับย่อหน้ายาวได้อย่างไร


139

ฉันต้องการแสดงข้อกำหนดและเงื่อนไขในเว็บไซต์ของฉัน ฉันไม่ต้องการใช้ช่องข้อความและไม่ต้องการใช้ทั้งหน้า ฉันแค่ต้องการแสดงข้อความของฉันในพื้นที่ที่เลือกและต้องการใช้แถบเลื่อนแนวตั้งเท่านั้นเพื่อลงไปอ่านข้อความทั้งหมด

ขณะนี้ฉันใช้รหัสนี้:

<div style="width:10;height:10;overflow:scroll" >
 text text text text text text text text text
 text text text text text text text text text
 text text text text text text text text text
 text text text text text text text text text
 text text text text text text text text text
 text text text text text text text text text
 text text text text text text text text text
 text text text text text text text text text
</div>

สองปัญหา:

  1. ไม่ได้กำหนดความกว้างและความสูงและกระจายจนกว่าข้อความทั้งหมดจะปรากฏขึ้น
  2. อย่างที่สองมันแสดงแถบเลื่อนแนวนอนและฉันไม่ต้องการแสดง

ปัญหาความกว้าง / ความสูงแก้ไขได้โดย "Daniel Vassallo" และปัญหาแถบเลื่อนแนวนอนแก้ไขได้โดย "janmoesen" ตอนนี้คำตอบของใครฉันควรยอมรับ :) ฉันสามารถเลือกหลายคนได้;)
Awan

คำตอบ:


240

ใช้overflow-y. คุณสมบัตินี้คือ CSS 3


ปัญหาความกว้าง / ความสูงแก้ไขได้โดย "Daniel Vassallo" และปัญหาแถบเลื่อนแนวนอนแก้ไขได้โดย "janmoesen" ตอนนี้คำตอบของใครฉันควรยอมรับ :) ฉันสามารถเลือกหลายข้อได้;)
Awan

22
มันค่อนข้างชัดเจน: มักจะเป็นฝ่ายแพ้นั่นคือคนที่มีชื่อเสียงต่ำที่สุด ;-)
janmoesen

ฮ่า ๆ ๆ . แต่คำตอบของคุณไม่ได้อยู่ในรายละเอียดของ "Daniel Vassallo" :)
Awan

ฉันมุ่งมั่นเพื่อ "น้อยกว่ามาก" และปล่อยให้ลิงก์พูดคุย อย่างไรก็ตามเพียงเลือกหนึ่งและมีวันหยุดสุดสัปดาห์ที่ดี!
janmoesen

16
ฉันเชื่อว่ามาตรฐานในที่นี้จะไม่ตอบคำถามที่มีลิงก์ "เฉยๆ" เนื่องจากลิงก์อาจไม่ถูกต้อง คุณควรใส่ข้อมูลให้เพียงพอเพื่อตอบคำถามโดยตรงในคำตอบของคุณจากนั้นจึงมีลิงก์เป็นข้อมูลอ้างอิง
Jeffrey Harmon

67

หากต้องการซ่อนแถบเลื่อนแนวนอนคุณสามารถตั้งค่า overflow-x เป็นซ่อนได้ดังนี้:

overflow-x: hidden;

ฉันรู้สึกว่านี่คือคำตอบที่ผู้ถามต้องการ ... คุณสมควรได้รับเครดิตมากกว่านี้
Ian Wise

52

คุณต้องระบุwidthและheightในpx:

width: 10px; height: 10px;

นอกจากนี้คุณสามารถใช้overflow: auto;เพื่อป้องกันไม่ให้แถบเลื่อนแนวนอนแสดง

ดังนั้นคุณอาจต้องลองทำสิ่งต่อไปนี้:

<div style="width:100px; height:100px; overflow: auto;" >
  text text text text text text text text text
  text text text text text text text text text
  text text text text text text text text text
  text text text text text text text text text
  text text text text text text text text text
  text text text text text text text text text
  text text text text text text text text text
  text text text text text text text text text
</div>

ความกว้างและความสูงใช้งานได้แล้ว แต่แถบเลื่อนแนวนอนยังคงไม่ถูกลบออก
Awan

ปัญหาความกว้าง / ความสูงแก้ไขได้โดย "Daniel Vassallo" และปัญหาแถบเลื่อนแนวนอนแก้ไขได้โดย "janmoesen" ตอนนี้คำตอบของใครฉันควรยอมรับ :) ฉันสามารถเลือกหลายคนได้;)
Awan

19

ขอบคุณก่อน

ใช้overflow:autoมันได้ผลสำหรับฉัน

แถบเลื่อนแนวนอนจะหายไป


15

สำหรับกรณีใด ๆ ที่ตั้งค่าoverflow-xเป็นhiddenและฉันต้องการตั้งค่าmax-heightเพื่อ จำกัด การขยายความสูงของ div รหัสของคุณควรมีลักษณะดังนี้:

overflow-y: scroll;
overflow-x: hidden;
max-height: 450px;

13

หากต้องการแสดงแถบเลื่อนแนวตั้งใน div ของคุณคุณต้องเพิ่ม

height: 100px;   
overflow-y : scroll;

หรือ

height: 100px; 
overflow-y : auto;

2
max-height: 100px;ฉันชอบที่จะใช้
โรมัน

เนื่องจากการกำหนดค่าของฉันมันheightหายไปจึงไม่แสดงแถบเลื่อนแนวตั้งแม้ว่าจะheight:100%;ทำงานได้ดีกว่าสำหรับฉัน
SharpC



2

ฉันก็ประสบปัญหาเดียวกัน ... ลองทำสิ่งนี้ ... สิ่งนี้ได้ผลสำหรับฉัน

        .scrollBbar 
        {
        position:fixed;
        top:50px;
        bottom:0;
        left:0;
        width:200px;
        overflow-x:hidden;
        overflow-y:auto;
       }

1

นี่คือส่วนผสมของฉัน:

overflow-y: scroll;
height: 13em; // Initial height.
resize: vertical; // Allow user to change the vertical size.
max-height: 31em; // If you want to constrain the max size.
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.