วิธีหยุดข้อความไม่ให้เกิน 1 บรรทัด?


332

มีการตัดคำหรือคุณลักษณะอื่น ๆ ที่หยุดข้อความจากการตัด? ฉันมีความสูงและoverflow:hiddenและข้อความก็ยังคงพัก

ต้องการทำงานกับเบราว์เซอร์ทั้งหมดก่อน CSS3

คำตอบ:


631

div {
  white-space: nowrap;
  overflow: hidden;
}
<div>test that doesn't wrap</div>

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

ในฐานะของ CSS3 สิ่งนี้ได้รับการสนับสนุนสำหรับเซลล์ตารางเช่นกัน


12
พื้นที่สีขาว! นั่นคือสิ่งที่ฉันกำลังมองหา ... 1,000 ขอบคุณ ... มันเป็นไปไม่ได้ที่ Google จะหา!

2
นอกจากนี้ยังมีคุณสมบัติเช่นกรรมสิทธิ์ที่เรียกว่า word-wrap (IIRC) ... โง่ IE
garrow

21
ลองพิจารณา "text-overflow: ellipsis;" มันเพิ่ม ... ในตอนท้ายของข้อความของคุณถ้ามันไปอยู่นอกขอบเขตของความกว้างของภาชนะของคุณ
ดึงขุนนางเยอรมัน

1
ฉันคิดว่าข้อคิดเห็น "ใช้งานได้กับองค์ประกอบบล็อกเท่านั้น" ถูกต้อง หากคุณลองทำสิ่งนี้ในจุดยึดย่อหน้าหัวเรื่อง ฯลฯ สิ่งนี้จะไม่ทำงาน คุณต้องทำอะไรบางอย่างp.oneline { white-space:nowrap; overflow:hidden; display:block;}
Alex Angelico

ระวังการซ่อนล้น มันหมายถึงธุรกิจ
David A. Gray


36

การใช้จุดไข่ปลาจะเพิ่ม ... ในที่สุด

   <style type="text/css">
    div {
      white-space: nowrap;
      overflow: hidden;
text-overflow: ellipsis;
    }
    </style>

4

บางครั้งการใช้&nbsp;แทนการเว้นวรรคก็ใช้งานได้ เห็นได้ชัดว่ามันมีข้อเสีย


แต่น่าเสียดายที่ฉันไม่สามารถทำมันได้ในกรณีนี้

2

เพียงเพื่อจะใสนี้ทำงานอย่างกับย่อหน้าและส่วนหัว ฯลฯ display: blockคุณเพียงแค่ต้องระบุ

ตัวอย่างเช่น

<h5 style="display: block; text-overflow: ellipsis; white-space: nowrap; overflow: hidden">
  This is a really long title, but it won't exceed the parent width
</h5>

(ยกโทษให้กับรูปแบบอินไลน์)

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