css overflow - มีข้อความเพียง 1 บรรทัด


134

ฉันมีdivสไตล์ css ต่อไปนี้:

width:335px; float:left; overflow:hidden; padding-left:5px;

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

ฉันคิดจะตั้งความสูง แต่ดูเหมือนจะผิด

บางทีถ้าฉันเพิ่มความสูงที่เหมือนกับฟอนต์มันควรจะใช้งานได้และไม่ก่อให้เกิดปัญหาในเบราว์เซอร์อื่น?

ฉันจะทำเช่นนั้นได้อย่างไร?


คุณสามารถสาธิตปัญหาของคุณในjsFiddle ได้หรือไม่?
Harry Joy

คำตอบ:


352

หากคุณต้องการ จำกัด ไว้ที่บรรทัดเดียวให้ใช้white-space: nowrap;บน div


แต่จะไม่แสดงจุดไข่ปลาหากข้อความเกินขนาดที่ระบุ stackoverflow.com/questions/26342411/…
SearchForKnowledge

มันใช้งานได้ดี แต่ฉันต้องการ...ถ้ามีอักขระที่จะแสดงมากกว่านี้เพราะเมื่อความยาวของบรรทัดยาวและมันออกไปจากการเขียน div
Moshii

สิ่งนี้จะแปลกหากข้อความที่ซ่อนอยู่มีไฮเปอร์ลิงก์ ถ้าฉันจะแท็บผ่านหน้ามันจะทำให้ลิงค์ในข้อความที่ซ่อนอยู่เลื่อนไปที่หน้าจอเมื่อมันควรจะซ่อน
Eric

76

หากคุณต้องการระบุว่ายังมีเนื้อหาเพิ่มเติมใน div นั้นคุณอาจต้องการแสดง "จุดไข่ปลา":

text-overflow: ellipsis;

สิ่งนี้ควรอยู่นอกเหนือwhite-space: nowrap;จากที่ Septnuits แนะนำ

นอกจากนี้ตรวจสอบให้แน่ใจว่าคุณชำระเงินชุดข้อความนี้เพื่อจัดการเรื่องนี้ใน Firefox


47
ฉันเชื่อว่าคุณต้องใช้text-overflow: ellipsis;ด้วยoverflow: hidden;และwhite-space: nowrap;เพื่อให้มันใช้งานได้
Francisco Costa

caniuse.com/#feat=text-overflow aka. ใช่คุณสามารถ. พิจารณาใส่เนื้อหาทั้งหมดในแอตทริบิวต์ title เพื่อให้ผู้ใช้ยังคงเข้าถึงได้
DanMan

ของฉันแสดงในบรรทัดเดียวและไม่ได้เติม DIV ก่อนที่จะแสดงจุดไข่ปลา ... stackoverflow.com/questions/26342411/… ( jsfiddle.net/ofrj55j4/20 )
SearchForKnowledge

44

คุณสามารถใช้รหัส css นี้:

text-overflow: ellipsis; 
overflow: hidden; 
white-space: nowrap;

คุณสมบัติtext-overflowใน CSS เกี่ยวข้องกับสถานการณ์ที่ข้อความถูกตัดออกเมื่อมันล้นกล่องขององค์ประกอบ สามารถตัด (เช่นตัด, ซ่อน), แสดงจุดไข่ปลา ('…', ค่าช่วง Unicode U + 2026)

โปรดสังเกตว่าtext-overflowจะเกิดขึ้นก็ต่อเมื่อคุณสมบัติ overflow ของ container มีค่าที่ซ่อนอยู่ , scrollหรือautoและwhite-space: nowrap; .

การล้นของข้อความสามารถเกิดขึ้นได้เฉพาะในองค์ประกอบระดับบล็อกหรือแบบอินไลน์เนื่องจากองค์ประกอบต้องมีความกว้างจึงจะสามารถแก้ไขได้ การล้นเกิดขึ้นในทิศทางที่กำหนดโดยคุณสมบัติทิศทางหรือคุณลักษณะที่เกี่ยวข้อง



0

หากนอกจากนี้โปรดหากคุณมีข้อความยาวโปรดใช้รหัส css ร้องนี้

text-overflow: ellipsis;
overflow: visible;
white-space: nowrap;

ทำให้เห็นข้อความทั้งบรรทัด


0
width:200px;
white-space: nowrap;
text-overflow: ellipsis;
overflow: hidden;

กำหนดความกว้างเพื่อตั้งค่าล้นในหนึ่งบรรทัด


-2

ฉันมีปัญหาเดียวกันและฉันแก้ไขได้โดยใช้:

display: inline-block;

ในdivคำถาม

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