ฉันจะตัดหรือแบ่งข้อความ / คำยาว ๆ ในช่วงความกว้างคงที่ได้อย่างไร


106

ฉันต้องการสร้างช่วงที่มีความกว้างคงที่ซึ่งเมื่อฉันพิมพ์สิ่งใด ๆ ในช่วงเช่น<span>lgasdfjksdajgdsglkgsadfasdfadfasdfadsfasdfasddkgjk</span>สตริงข้อความยาว ๆ ที่ไม่เว้นวรรคคำนั้นจะแบ่งหรือตัดไปที่บรรทัดถัดไป

ความคิดใด ๆ ?

คำตอบ:


195

คุณสามารถใช้คุณสมบัติ CSS word-wrap:break-word;ซึ่งจะทำลายคำหากยาวเกินไปสำหรับความกว้างช่วงของคุณ

span { 
    display:block;
    width:150px;
    word-wrap:break-word;
}
<span>VeryLongLongLongLongLongLongLongLongLongLongLongLongExample</span>


1
ทำงานได้ดีสำหรับการควบคุมฉลากของ asp.net ขอบคุณ!
etlds

42
การเพิ่มwhite-space: normalช่วยในการลบล้างการจัดแต่งทรงผมด้านนอกที่อาจเข้ามาขวาง :) .. inline-blockใช้ได้ผลเช่นเดียวกับblock
Katia

แล้วการทำลายสองช่วงที่อยู่ในองค์ประกอบบล็อกล่ะ?
Daniel Springer

สำหรับผู้ที่ยังคงมีปัญหาหลังจากใช้คำตอบนี้โปรดระบุ 'ความกว้าง' มิฉะนั้นอาจใช้ไม่ได้
Staccato

มันต้องมีความกว้างเพื่อที่จะได้รู้ว่าจะแตก
DFSFOT

40

ลองทำตาม css ด้วยการเพิ่มwhite-space:

span {
    display: block;
    word-wrap:break-word;
    width: 50px;
    white-space: normal
}

5
ขอบคุณ! ฉันคิดไม่ออกว่าทำไมข้อความของฉันถึงไม่ถูกตัด! พื้นที่สีขาวคือเหตุผล
mdiehl13

1
ปัญหาของฉันได้รับการแก้ไขเมื่อฉันใส่:white-space: normal
majorBummer

นี่คือตารางอ้างอิงในกรณีที่คุณต้องการพื้นที่สีขาวและการห่อ: css-tricks.com/almanac/properties/w/whitespace
Hritik

16

แบบนี้

การสาธิต

  li span{
    display:block;
    width:50px;
    word-break:break-all;
}

เพื่อนของฉันฉันต้องการเมื่อใส่ช่วงกว้าง: 50px; ค่าในช่วงของฉันแสดงเฉพาะใน 50px และค่าอื่น ๆ ไปที่บรรทัดถัดไปและแสดงเป็น 50px !!!
محمدکثیری

1
@ mamal10 ตรวจสอบโซลูชันของ Maxime Lorant
Mr_Green

3

โดยค่าเริ่มต้น a spanคือไฟล์inlineองค์ประกอบ ... ดังนั้นจึงไม่ใช่ลักษณะการทำงานเริ่มต้น

คุณสามารถสร้างspanพฤติกรรมดังกล่าวได้โดยเพิ่มdisplay: block;ลงใน CSS ของคุณ

span {
    display: block;
    width: 100px;
}


0

เพียงเพื่อขยายขอบเขตเชิงปฏิบัติของคำถามและเป็นภาคผนวกของคำตอบที่กำหนด: บางครั้งอาจจำเป็นต้องระบุตัวเลือกเพิ่มเติมอีกเล็กน้อย

การกำหนดช่วงเต็มเป็นจอแสดงผล: อินไลน์บล็อกคุณอาจมีปัญหาในการแสดงภาพ

ดังนั้นฉันชอบที่จะกำหนดช่วงดังนี้:

span {
  display:block;
  width:150px;
  word-wrap:break-word;      
}
p span, a span,
h1 span, h2 span, h3 span, h4 span, h5 span {
  display:inline-block;
}
img{
  display:block;
}

0

ในกรณีของฉัน display: block ทำลายการออกแบบตามที่ตั้งใจไว้

max-widthคุณสมบัติเพียงแค่บันทึกฉัน

และสำหรับการจัดแต่งทรงผมคุณสามารถใช้ได้text-overflow: ellipsisเช่นกัน

รหัสของฉันคือ

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