Ngược lại với nbsp là gì?


87

Một  ký tự là một khoảng trắng không cho phép ngắt dòng.

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

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

Ngược lại với điều đó là gì? Đó là, một ký tự KHÔNG được hiển thị dưới dạng khoảng trắng, nhưng CÓ THỂ được sử dụng để ngắt dòng.

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

|foo supercalifragi |
|listicexpiali      |
|docious bar        |

or with wider size:

|foo supercalifragilisticexpiali   |
|docious bar                       |

Tôi biết về ký tự dấu gạch ngang mềm , nhưng vì mục đích của tôi, tôi đặc biệt không muốn thêm dấu gạch nối vào dấu ngắt.

Câu trả lời:


96

Bạn muốn ký tự unicode ZERO-WIDTH SPACE (\ u200B).

Bạn có thể lấy nó trong HTML với &#8203;hoặc &#x200b;.

Ngắt và không ngắt nghỉ rõ ràng:

LB7: Không ngắt trước khoảng trắng hoặc khoảng trắng bằng không.
LB8: Ngắt trước bất kỳ ký tự nào theo sau khoảng trắng bằng không, ngay cả khi một hoặc nhiều khoảng trắng xen vào.
http://unicode.org/reports/tr14/


Tôi đã thử nghiệm điều này, nó không tạo ra ngắt dòng trong Firefox 3.5.7.
Noon Silk

19
Nó không có nghĩa là tạo ra một dấu ngắt dòng rõ ràng. Nó có nghĩa là để chỉ ra một điểm mà dòng có thể được quấn nếu nó quá dài để phù hợp với bất kỳ nơi nào nó phải đi.
Anon.

13
Đó là IE6 cho bạn.
Mike Weller

2
Vì vậy, .... ký tự này có thể là xấu vì nếu bạn sao chép nội dung xung quanh có chứa nó (trong các trình chỉnh sửa nhận dạng unicode sẽ vui vẻ chơi cùng) bạn sẽ không biết về sự hiện diện của nó và nó sẽ khiến các trình biên dịch ví dụ như bị nghẹt thở. cứng. Ví dụ: Chrome sẽ cho bạn biết "NHÂN VẬT BẤT HỢP PHÁP" nhưng không chỉ ra cho bạn biết vị trí của nó. Tôi muốn sử dụng thủ thuật thừa nhận gọn gàng này như là một phương sách cuối cùng
Steven Lu

1
Thay thế có thể nhìn thấy là Dấu gạch nối.
davidcondrey

38

Ngoài ra còn có thẻ wbr ít được biết đến , cho phép trình duyệt quyết định xem có ngắt dòng hay không.


1
Cần lưu ý rằng đây không phải là tiêu chuẩn và không được hỗ trợ trong tất cả các trình duyệt.
Brian Campbell

1
@Brian, hãy kiểm tra liên kết quirksmode mà fredden đã đăng.
nickf

10
Nếu nó đủ tốt cho Facebook, nó đủ tốt cho mọi thứ ;-)
Martin Bean

1
WBR hoạt động trong Chrome 34.0.1847.131 m, Firefox 29.0.1 và Opera Chromium 12.17. Nó không hoạt động trong IE 11.0.9600.17105.
Dave Burton

<wbr> có thêm dấu -không?
beppe9000

16

Có một trang hay trên quirksmode.org trả lời câu hỏi này khá hay đó IMHO. http://www.quirksmode.org/oddsandends/wbr.html

Tóm lại: sử dụng <wbr /> hoặc & # 8203; (hoặc & nhút nhát; nhưng bạn đã đề cập rằng bạn không muốn dấu gạch ngang).


Không phải tất cả các khả năng này đều được hỗ trợ bởi tất cả các trình duyệt. Tôi đoán & # 8203; là giải pháp tốt nhất vì hầu hết các trình duyệt đều có thể nhận dạng Unicode.
AndiDog

và người dùng IE6 có vẻ như nhận được một glyph xấu xí ... trái tim tôi khóc.
nickf


1

Bạn có thể sử dụng thuộc tính CSS3 có tên là word-wrap

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

Hy vọng nó giúp!


2
Điều này chỉ hoạt động nếu bạn không quan tâm đến vị trí ngắt dòng được thêm vào.
JJJ

Câu hỏi đặt ra là đặt một vị trí trong một từ cụ thể ở đâu, chứ không phải làm thế nào để kích hoạt ngắt công việc nói chung.
Frode Evensen

-5

Có rất nhiều cuộc thảo luận về điều này nhưng nó đã trở thành tiêu chuẩn ít nhiều để sử dụng &shy;


5
Đây là một dấu gạch nối mềm, mà người hỏi không muốn.
Cơ ốc
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.