2009-08-31 63 views

Trả lời

99

Một là non-breaking space và loại kia là khoảng cách thông thường. Một không gian không phá vỡ có nghĩa là không nên quấn dây vào thời điểm đó, giống như nó sẽ không được bao bọc ở giữa một từ.

Ngoài ra như Svend chỉ ra trong nhận xét của mình, không gian không phá vỡ không bị thu gọn.

+28

  cũng đều là phòng không sụp đổ, đó là lẽ là khía cạnh quan trọng nhất của việc sử dụng chúng (ít nhất, đó là cách tôi có xu hướng sử dụng chúng, pad thứ ra, nhanh chóng và dễ dàng) – Svend

+1

Tốt điểm. Tôi sẽ thêm nó. –

+17

Protip: Vui lòng không sử dụng 15% nbsp; liên tiếp để điều gì đó không gian. Làm tôi phát điên khi tôi thấy mọi người làm điều đó. Sử dụng CSS padding hoặc margin. –

2

Dữ liệu đầu tiên không được xử lý bằng không gian trắng bởi trình phân tích HTML, thứ hai là. Kết quả là "" không được bảo đảm để hiển thị trong một số đánh dấu HTML nhất định, trong khi không gian không bị vỡ sẽ luôn hiển thị.

0

@Zoidberg là đúng, dụ:

<h1>title</h1> <h2>date</h2> 

sẽ không hiển thị khoảng cách giữa đánh dấu tiêu đề, với

& nbsp ; 

sẽ làm không gian :)

0

&nbsp; nên được xử lý như một khoảng trống.

&nbsp;&nbsp; nên được xử lý như hai khoảng trắng

'' có thể được xử lý như một khoảng trắng không thú vị

'' + '' có thể được xử lý như một đơn ''

27

Ngoài các các câu trả lời khác ở đây, các khoảng trống không phá vỡ sẽ không bị "thu gọn" như các khoảng trống thông thường. Ví dụ, cả hai

<p>Word1   Word2</p> 

<p>Word1 Word2</p> 

sẽ làm như nhau trên bất kỳ trình duyệt, trong khi

<p>Word1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Word2</p> 

sẽ giữ cho không gian khi render.

+0

Trả lời câu cuối cùng của bạn: & không hoạt động? – Stewart

+0

Không, sau đó tôi đã kết thúc với & trong suốt. Nó không giải thích & amp; nhưng nó đã giải thích & nbsp của. –

+2

Tôi thấy bây giờ. BTW là lỗi đã biết: http://meta.stackexchange.com/questions/3314 – Stewart

4

Nhiều ký tự khoảng trắng bình thường (không gian, bộ phận của máy đánh chữ và ngắt dòng) là treated as one single white space character:

Đối với tất cả các phần tử HTML trừ PRE, trình tự không gian trắng "chữ" riêng biệt (chúng tôi sử dụng thuật ngữ "từ" ở đây có nghĩa là "chuỗi ký tự không gian trắng"). Khi định dạng văn bản, các tác nhân người dùng nên xác định những từ này và đặt chúng ra theo các quy ước của ngôn ngữ viết (chữ viết) cụ thể và phương tiện đích.

Vì vậy

foo bar 

được hiển thị như

foo bar 

Nhưng không-break không gian luôn được hiển thị.Vì vậy,

foo&‍nbsp;&‍nbsp;&‍nbsp;bar 

được hiển thị như

foo bar 
5

Như đã đề cập, bạn sẽ không nhận được một ngắt dòng, nơi có một "không gian không-break".

Cũng nên cảnh giác, các phần tử chỉ chứa "" có thể hiển thị không chính xác, trong đó & nbsp; sẽ làm việc. Tức là ít nhất 6 (theo như tôi nhớ, IE7 có cùng vấn đề), nếu bạn có phần tử bảng trống, nó sẽ không áp dụng kiểu dáng, ví dụ như đường viền, cho phần tử, nếu không có nội dung hoặc chỉ trắng không gian. Vì vậy, sau đây sẽ không được trả lại với biên giới:

<td></td> 
<td> <td> 

Trong khi biên giới sẽ hiển thị trong ví dụ này:

<td>& nbsp;</td> 

Hmm -had đặt trong một không gian giả để có được nó hiển thị chính xác ở đây

+0

Câu cuối cùng của bạn: & có hoạt động không? – Stewart

+0

@Stewart - Tôi đã thử với amp, và nó làm việc trong văn bản, nhưng không phải trong exmple mã - bởi vì nó cũng đã viết "amp" một phần ra – Pete

+0

Rất lạ. Rõ ràng là một lỗi. – Stewart

47

Pháp nhân &nbsp; tạo ra không gian không phá vỡ, được sử dụng khi bạn không muốn ngắt dòng tự động tại vị trí đó. Không gian thông thường có mã ký tự 32, trong khi không gian không phá vỡ có mã ký tự 160.

Ví dụ: khi bạn hiển thị các số có dấu cách là dấu tách hàng nghìn: 1 234 567, thì bạn sử dụng dấu cách không ngắt sao cho không thể chia số thành các dòng riêng biệt. Nếu bạn hiển thị đơn vị tiền tệ và có khoảng cách giữa số tiền và đơn vị tiền tệ: 42 SEK, thì bạn sử dụng không gian không phá vỡ để bạn không nhận được số tiền trên một dòng và đơn vị tiền tệ tiếp theo.

+0

Ví dụ tốt về sử dụng nbsp. Tôi đã tìm kiếm một số bản thân mình, nhưng không thể nghĩ về chúng. – Pete

0

Khi có ngắt dòng, dòng sẽ không bị ngắt khi bạn sử dụng $ bnsp; bởi vì đó là 'không gian không phá vỡ'. Điều này có thể quan trọng nếu bạn có một số tên sản phẩm hoặc như vậy, luôn luôn phải được viết cùng nhau.

Có thể thú vị nếu bạn (phải) sử dụng khoảng trắng làm dấu phân cách bằng số, như 12344567, được hiển thị 12 344 567 ở Pháp. Nếu không có   dòng sẽ phá vỡ ở giữa số lượng, rất xấu xí. Kiểm tra: 12 344 567

15

Không phải là câu trả lời càng nhiều càng tốt một ví dụ ..

Ví dụ # 1:

<div style="width:45px; height:45px; border: solid thin red; overflow: visible"> 
    Hello&nbsp;There 
</div> 

Ví dụ # 2:

<div style="width:45px; height:45px; border: solid thin red; overflow: visible"> 
    Hello There 
</div> 

Và liên kết đến fiddle.

0

&nbsp; có thể xếp chồng, nghĩa là bạn có thể tạo nhiều không gian cùng nhau.

HTML sẽ chỉ phân tích một không gian '' và tụt xuống phần còn lại ...

Nếu bạn muốn năm không gian, bạn sẽ đặt 5 x &nbsp;

3

Có rất nhiều loại khác nhau của không gian, chẳng hạn như không gian mỏng, không gian em, không gian không phá vỡ ... Jon Tan đã tạo ra một số ghi chú phổ biến nhất là at his blog.

2

Bạn có thể thấy một ví dụ làm việc ở đây:

http://codepen.io/anon/pen/GJzBxo

http://codepen.io/anon/pen/LVqBQo

Cùng div, cùng văn bản, "không gian" khác nhau

<div style="width: 500px; background: red"> [loooong text with spaces]</div> 

vs

<div style="width: 500px; background: red"> [loooong text with &nbsp;]</div> 
+0

Bạn có thể giải thích cho tôi, tại sao downvote câu trả lời này? –

+0

Tôi đã upvoted nó. Tôi nghĩ nó không giải thích được. Tuy nhiên bạn đang chỉ ra một cái gì đó trực quan đó là hữu ích. – Nishant

Các vấn đề liên quan