Làm thế nào để lấy một ký tự tab?


123

Trong HTML, không có ký tự nào cho tab, nhưng tôi bối rối không hiểu tại sao tôi có thể sao chép và dán một tab ở đây:. (Bạn không thể thấy toàn bộ chiều rộng của nó, nhưng nếu bạn nhấp để chỉnh sửa câu hỏi của tôi, bạn sẽ thấy ký tự.) Nếu tôi có thể sao chép và dán một ký tự tab, thì phải có một mã tương đương unicode có thể được mã hóa thành html . Tôi biết nó không tồn tại, nhưng đây là một bí ẩn mà tôi chưa bao giờ có thể hiểu được.

Vì vậy, câu hỏi của tôi là: tại sao không có ký tự unicode cho một tab ngay cả khi tôi có thể sao chép và dán nó?


7
Đây là một ký tự tab dành cho bạn: "". Chỉ cần nhắn tin cho tôi nếu bạn cần các ký tự khác! Tôi cũng có dấu cách, dấu gạch ngang và các chữ cái Hy Lạp!
madhead

Trên Unix: Ctrl + Shift + U và sau đó là 9 cho ký tự thụt lề.
neverMind9

StackOverflow trộn văn bản bình luận nhiều hơn câu hỏi hoặc câu trả lời. ``, '' và "" là các ký tự TAB được dán, được trích dẫn theo nhiều cách khác nhau.
MarkHu

Câu trả lời:


165

Chắc chắn có một thực thể cho các tab:

	

(Tab là ký tự ASCII 9 hoặc Unicode U + 0009.)

Tuy nhiên, cũng giống như các tab theo nghĩa đen (những tab bạn nhập vào trình soạn thảo văn bản của mình), tất cả các ký tự tab được trình phân tích cú pháp HTML coi là khoảng trắng và được thu gọn vào một khoảng trắng ngoại trừ những <pre>tab nằm trong một khối, trong đó các tab nghĩa sẽ được hiển thị dưới dạng 8 khoảng trắng trong một phông chữ monospace.


1
Điều đó thật thú vị, nhưng nếu nó là một ký tự unicode, thì html không nên thay đổi nó (thu gọn nó) chút nào, phải không?
Abbey Graebner

2
Unicode không có ký tự tab riêng; U + 0009 giống với ký tự tab bạn nhận được bằng cách nhấn Tab. (Tôi nghĩ rằng bạn có thể là khó hiểu thực thể HTML với bộ ký tự Unicode.)
josh3736

9
nói chung hơn, bạn có thể sử dụng & # 9; trong bất kỳ phần tử nào có kiểu CSS white-space: pre; như trong jsfiddle.net/cancerbero_sgx/sp269/3
cancerbero

96

Thử &emsp;

theo tài liệu:

Các thực thể ký tự &ensp;và lần lượt &emsp;biểu thị một khoảng trắng và một không gian em, trong đó một khoảng trắng bằng một nửa kích thước điểm và một không gian em bằng kích thước điểm của phông chữ hiện tại. Đối với phông chữ cao độ cố định, tác nhân người dùng có thể coi khoảng trắng tương đương với ký tự dấu cách A và khoảng trắng em tương đương với hai ký tự khoảng trắng.

Liên kết tài liệu: https://www.w3.org/MarkUp/html3/specialchars.html


48

đặt nó vào giữa <pre></pre>các thẻ rồi sử dụng các ký tự này&#9;

nó sẽ không hoạt động nếu không có các <pre></pre>thẻ


4
Được rồi, điều này thật tuyệt, tôi đã cố gắng sử dụng một &#9;mình, nhưng nó không hoạt động. Cảm ơn vì đã đề cập <pre>!
Abbey Graebner

1
Đề xuất tuyệt vời. Chính xác thì tại sao nó lại hành xử như vậy?
pkanane

1
tag <pre> định nghĩa thẻ định dạng sẵn văn bản bất cứ nơi văn bản bên trong thẻ sẽ giữ gìn không gian, ngắt dòng, tab vv Nó thường sẽ được hiển thị trong một chiều rộng cố định kiểu font như Courier
Raymund

2
Bạn có thể sử dụng bất kỳ thẻ html nào với sự kết hợp của white-space: pre-wrap;hoặcwhite-space: pre;
Petr Hurtak

16

Đăng thay thế khác hoàn thiện hơn. Khi tôi thử các câu trả lời dựa trên "trước", họ cũng thêm các dấu ngắt dòng dọc.

Mỗi tab có thể được chuyển đổi thành một khoảng trắng không ngắt theo trình tự mà không cần bao bọc.

"&nbsp;&nbsp;&nbsp;&nbsp;" 

Điều này không được khuyến khích để sử dụng lặp lại / rộng rãi trong một trang. Cách tiếp cận ký quỹ / đệm div sẽ có vẻ gọn gàng hơn nhiều.


5
Nếu các tab đang được sử dụng làm công cụ để căn chỉnh văn bản ở bên phải của các tab (trong đó văn bản phông chữ có độ rộng không cố định ở bên trái không bằng nhau), chuyển đổi sang ký tự nbsp sẽ không giải quyết được vấn đề.
Steve Midgley

4

Tôi sử dụng <span style="display: inline-block; width: 2ch;">&#9;</span>cho một tab rộng hai ký tự.


Điều này không giống như các tab, nó chỉ là thêm khoảng trắng để không có cột này.
Salami

1

Tab là [HT], hoặc ký tự số 9, trong thư viện unicode.


1

Như đã đề cập, vì lý do hiệu quả, các không gian tuần tự được hợp nhất thành một không gian mà trình duyệt thực sự hiển thị. Hãy nhớ ML trong HTML là viết tắt của gì. Đó là Ngôn ngữ đánh dấu, được thiết kế để kiểm soát cách văn bản được hiển thị .. không phải khoảng trắng: p

Tuy nhiên, bạn có thể giả sử trình duyệt tôn trọng các tab vì tất cả những gì TAB làm là thêm 4 khoảng trắng và điều đó thật dễ dàng với CSS. hoặc thẳng hàng như ...

 <div style="padding-left:4.00em;">Indenented text </div>

Hoặc như một lớp thông thường trong một biểu định kiểu

.tabbed {padding-left:4.00em;}

Sau đó, HTML có thể trông giống như

<p>regular paragraph regular paragraph regular paragraph</p>
<p class="tabbed">Indented text Indented text Indented text</p>
<p>regular paragraph regular paragraph regular paragraph</p>

1
Đó không phải là những gì một tab làm. Các tab sắp xếp nội dung, - trên một hàng, nó có thể thêm 3 khoảng trắng và trên một hàng khác là 4. Về mặt khái niệm, nó di chuyển con trỏ đến điểm dừng tab tiếp theo.
BrainSlugs83
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.