ความแตกต่างระหว่าง HTML“ overflow: auto” และ“ overflow: scroll”


123

เมื่อฉันกำลังศึกษาoverflowค่าของคุณสมบัติฉันพบค่าสองค่านี้: autoและscrollซึ่งจะเพิ่มแถบเลื่อนหากเนื้อหาล้นองค์ประกอบ

ใครช่วยอธิบายหน่อยได้ไหมว่าอะไรคือความแตกต่างระหว่างพวกเขา?

คำตอบ:


185

อัตโนมัติจะแสดงแถบเลื่อนเฉพาะเมื่อมีการตัดเนื้อหาใด ๆ

อย่างไรก็ตามการเลื่อนจะแสดงแถบเลื่อนเสมอแม้ว่าเนื้อหาทั้งหมดจะพอดีและคุณไม่สามารถเลื่อนได้


2
ดูเหมือนจะไม่มีความแตกต่างอย่างน้อยที่สุดใน Safari เวอร์ชันล่าสุด: แม้ว่าscrollฉันจะไม่เห็นแถบเลื่อนหากเนื้อหาเหมาะสม แต่เพื่อความปลอดภัยฉันไปด้วยautoเพราะฉันต้องการแสดงแถบเลื่อนเมื่อมีการตัดเนื้อหาเท่านั้น
ma11hew28

1
@MattDiPasquale OS X และ Windows แสดงแถบเลื่อนในรูปแบบต่างๆ คุณอาจใช้ Safari บน Mac ใช่ไหม OS X มักจะซ่อนแถบเลื่อนจนกว่าคุณจะเลื่อนจริงๆ
Johan Davidsson

1
ดูเหมือนว่าจะมีความแตกต่างมากกว่านั้นoverlow: scrollทำให้กล่องบางลง: jsbin.com/letog/2/edit
Dmitri Zaitsev

ใน Safari 12 (อาจเป็นเวอร์ชันก่อนหน้านี้ด้วย) เว้นแต่ว่าแถบเลื่อนจะถูกกำหนดค่าให้แสดงเสมอoverflow: scrollและoverflow: autoจะทำงานเหมือนกันเมื่อคอนเทนเนอร์มีขนาดใหญ่พอที่จะบรรจุเนื้อหาได้
Luke Worth

15

overflow: scrollจะซ่อนเนื้อหาที่ล้นทั้งหมดและทำให้แถบเลื่อนปรากฏในองค์ประกอบที่เป็นปัญหา หากเนื้อหาไม่ล้นแถบเลื่อนจะยังคงมองเห็นได้ แต่ปิดใช้งาน

overflow: auto คล้ายกันมาก แต่แถบเลื่อนจะปรากฏเฉพาะเมื่อเนื้อหาล้น

มีคำอธิบายที่คล้ายกันที่นี่พร้อมภาพหน้าจอบางส่วนเพื่อแสดงประเด็น


2

ลองดูที่เคล็ดลับ CSS

อัตโนมัติจะแสดงแถบเลื่อนก็ต่อเมื่อเนื้อหาล้น แต่การเลื่อนจะแสดงแถบเลื่อนเสมอไม่ว่าเนื้อหาจะล้นหรือไม่ก็ตาม



0

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

https://css-tricks.com/the-css-overflow-property/


-1

ใน Windows โอเวอร์โฟลว์: scroll จะแสดงแถบเลื่อนและโอเวอร์โฟลว์เสมอ: อัตโนมัติจะแสดงแถบเลื่อนก็ต่อเมื่อเนื้อหาล้น ใน macOS โอเวอร์โฟลว์: เลื่อนและโอเวอร์โฟลว์: อัตโนมัติจะแสดงแถบเลื่อนเสมอหากเนื้อหาล้น ทดสอบใน Chrome ฉันขอแนะนำให้ใช้ overflow: auto เนื่องจากมันทำงานในลักษณะเดียวกันและไม่สร้างปัญหาใน windows


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