อะไรที่ตรงข้ามกับ N nbsp?


87

 ตัวละครที่เป็นพื้นที่ซึ่งไม่อนุญาตให้มีการทำลายเส้น

<p>lorem ipsum here&nbsp;are&nbsp;some&nbsp;words and so on</p>

| lorem ipsum                |
| here are some words and so |
| on                         |

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

<p>foo supercalifragilisticexpialidocious bar</p>
<!--   put char here ^   and here ^ -->

|foo supercalifragi |
|listicexpiali      |
|docious bar        |

or with wider size:

|foo supercalifragilisticexpiali   |
|docious bar                       |

ฉันตระหนักถึงอักขระยัติภังค์แบบอ่อนแต่สำหรับจุดประสงค์ของฉันฉันไม่ต้องการให้เพิ่มยัติภังค์ในช่วงพักโดยเฉพาะ

คำตอบ:


96

คุณต้องการให้อักขระ Unicode ZERO-WIDTH SPACE (\ u200B)

คุณจะได้รับในรูปแบบ HTML ด้วยหรือ&#8203;&#x200b;

การแบ่งอย่างชัดเจนและไม่หยุดพัก:

LB7: อย่าแตกก่อนเว้นวรรคหรือเว้นวรรคกว้างเป็นศูนย์
LB8: แบ่งก่อนอักขระใด ๆ ตามช่องว่างที่มีความกว้างเป็นศูนย์แม้ว่าช่องว่างอย่างน้อยหนึ่งช่องจะแทรกแซงก็ตาม
http://unicode.org/reports/tr14/


ฉันทดสอบแล้วมันไม่ได้สร้างเส้นแบ่งใน Firefox 3.5.7
เที่ยงผ้าไหม

19
ไม่ได้มีไว้เพื่อสร้าง linebreak ที่ชัดเจน หมายถึงการระบุจุดที่สามารถพันเส้นได้หากยาวเกินไปที่จะใส่ในทุกที่ที่ควรจะไป
อานนท์.

2
ดังนั้น .... ตัวละครนี้อาจเป็นตัวร้ายเพราะถ้าคุณคัดลอกเนื้อหารอบ ๆ ที่มีอยู่ (ในโปรแกรมแก้ไขที่รับรู้รหัสเดียวซึ่งจะเล่นได้อย่างมีความสุข) คุณจะไม่รู้ตัวว่ามีอยู่และจะทำให้คอมไพเลอร์หายใจไม่ออก ยาก ตัวอย่างเช่น Chrome จะบอกคุณว่า "ตัวอักษรผิดปกติ" แต่จะไม่ชี้ให้คุณทราบว่าอยู่ที่ใด ฉันจะใช้เคล็ดลับที่เป็นที่ยอมรับนี้เป็นวิธีสุดท้าย
Steven Lu

ควรเรียกว่า "Non Space Break"
jackreichert

1
ทางเลือกที่มองเห็นได้คือยัติภังค์
davidcondrey

38

นอกจากนี้ยังมีแท็ก <wbr ที่ไม่ค่อยมีใครรู้จักซึ่งช่วยให้เบราว์เซอร์ตัดสินใจได้ว่าจะล้ำเส้นหรือไม่


1
ควรสังเกตว่าสิ่งนี้ไม่ได้มาตรฐานและไม่ได้รับการสนับสนุนในทุกเบราว์เซอร์
Brian Campbell

1
@ ไบรอันตรวจสอบลิงก์ quirksmode ที่เฟรดเดนโพสต์
nickf

10
ถ้ามันดีพอสำหรับ Facebook ก็ดีพอสำหรับทุกคน ;-)
Martin Bean

1
WBR ทำงานใน Chrome 34.0.1847.131 m, Firefox 29.0.1 และ Opera Chromium 12.17 ไม่ทำงานใน IE 11.0.9600.17105
Dave Burton

ไม่ <wbr> เพิ่ม-?
beppe9000

16

มีหน้าเว็บสวย ๆ ที่ quirksmode.org ซึ่งตอบคำถามนี้ได้ค่อนข้างดี IMHO http://www.quirksmode.org/oddsandends/wbr.html

ในระยะสั้น: ใช้ <wbr /> หรือ & # 8203; (หรือ & เขิน; แต่คุณบอกว่าคุณไม่ต้องการขีดกลาง)


เบราว์เซอร์บางประเภทอาจไม่รองรับความเป็นไปได้ทั้งหมด ฉันเดาว่า & # 8203; เป็นทางออกที่ดีที่สุดเนื่องจากเบราว์เซอร์ส่วนใหญ่ควรจะสามารถจดจำ Unicode ได้
AndiDog

และผู้ใช้ IE6 ได้รับสัญลักษณ์ที่น่าเกลียดอย่างเห็นได้ชัด ... หัวใจของฉันร้องไห้
nickf


2

คุณสามารถใช้คุณสมบัติ CSS3 ที่เรียกว่าword-wrap

p.test {word-wrap:break-word;}

หวังว่าจะช่วยได้!


2
วิธีนี้ใช้ได้เฉพาะในกรณีที่คุณไม่สนใจว่าจะเพิ่มตัวแบ่งบรรทัดที่ใด
JJJ

คำถามคือการกำหนดตำแหน่งในคำเฉพาะที่จะทำลายไม่ใช่วิธีเปิดใช้งานการหยุดพักโดยทั่วไป
Frode Evensen

-5

มีการอภิปรายมากมายเกี่ยวกับเรื่องนี้ แต่กลายเป็นมาตรฐานที่จะใช้ไม่มากก็น้อย &shy;


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