<pre>: Phần tử Văn bản định dạng trước
Baseline
Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
Phần tử <pre> trong HTML đại diện cho văn bản định dạng trước được trình bày chính xác như cách viết trong tệp HTML. Văn bản thường được hiển thị bằng phông chữ không tỷ lệ, hay còn gọi là phông monospaced.
Khoảng trắng bên trong phần tử này được hiển thị như đã viết, với một ngoại lệ. Nếu một hoặc nhiều ký tự xuống dòng đứng đầu được bao gồm ngay sau thẻ mở <pre>, ký tự xuống dòng đầu tiên sẽ bị loại bỏ. Sự chuyển đổi này được thực hiện bởi trình phân tích HTML và không áp dụng khi sử dụng XHTML.
Nội dung văn bản của các phần tử <pre> được phân tích cú pháp như HTML, vì vậy nếu bạn muốn đảm bảo rằng nội dung văn bản vẫn là văn bản thuần túy, một số ký tự cú pháp như < có thể cần được thoát bằng tham chiếu ký tự tương ứng. Xem thoát ký tự không rõ ràng để biết thêm thông tin.
Các phần tử <pre> thường chứa các phần tử <code>, <samp> và <kbd>, tương ứng để đại diện cho mã máy tính, đầu ra máy tính và đầu vào của người dùng.
Theo mặc định, <pre> là phần tử cấp khối, tức là giá trị display mặc định của nó là block.
Try it
<pre>
S
A
LUT
M
O N
D E
DONT
JE SUIS
LA LAN
G U E É
L O Q U E N
TE QUESA
B O U C H E
O P A R I S
T I R E ET TIRERA
T O U JOURS
AUX A L
LEM ANDS - Apollinaire
</pre>
pre {
font-size: 0.7rem;
margin: 0;
}
Thuộc tính
Phần tử này chỉ bao gồm các thuộc tính toàn cục.
widthDeprecated Non-standard-
Chứa số ký tự ưa thích mà một dòng nên có. Mặc dù vẫn được triển khai về mặt kỹ thuật, thuộc tính này không có hiệu ứng trực quan; để đạt được hiệu ứng như vậy, hãy sử dụng CSS
widththay thế. wrapNon-standard Deprecated-
Là gợi ý chỉ ra cách xử lý tràn. Trong trình duyệt hiện đại, gợi ý này bị bỏ qua và không có hiệu ứng trực quan nào xảy ra; để đạt được hiệu ứng như vậy, hãy sử dụng CSS
white-spacethay thế.
Khả năng tiếp cận
Điều quan trọng là phải cung cấp mô tả thay thế cho bất kỳ hình ảnh hoặc sơ đồ nào được tạo bằng văn bản định dạng trước. Mô tả thay thế nên mô tả rõ ràng và súc tích nội dung của hình ảnh hoặc sơ đồ.
Những người gặp vấn đề về thị lực và duyệt web với sự hỗ trợ của công nghệ hỗ trợ như trình đọc màn hình có thể không hiểu các ký tự văn bản định dạng trước đang đại diện cho điều gì khi chúng được đọc theo thứ tự.
Sự kết hợp của các phần tử <figure> và <figcaption>, bổ sung bởi thuộc tính role của ARIA và aria-label trên phần tử pre cho phép nghệ thuật ASCII định dạng trước được thông báo là hình ảnh với văn bản thay thế, và figcaption phục vụ như chú thích của hình ảnh.
Ví dụ
<figure>
<pre role="img" aria-label="ASCII COW">
___________________________
< I'm an expert in my field. >
---------------------------
\ ^__^
\ (oo)\_______
(__)\ )\/\
||----w |
|| ||
</pre>
<figcaption id="cow-caption">
A cow saying, "I'm an expert in my field." The cow is illustrated using
preformatted text characters.
</figcaption>
</figure>
Ví dụ
>Ví dụ cơ bản
HTML
<p>Using CSS to change the font color is easy.</p>
<pre><code>
body {
color: red;
}
</code></pre>
Kết quả
Thoát ký tự không rõ ràng
Giả sử bạn muốn minh họa mã HTML trong phần tử <pre>. Các chuỗi ký tự xác định thẻ HTML hợp lệ (bắt đầu bằng < và kết thúc bằng >) sẽ không được hiển thị. Để hiển thị các ký tự thẻ dưới dạng văn bản, bạn cần thoát (ít nhất) ký tự < bằng tham chiếu ký tự của nó, để các chuỗi không còn xác định thẻ hợp lệ nữa.
Trên thực tế, trình phân tích HTML coi hầu hết các ký tự là văn bản thuần túy trừ trong các ngữ cảnh cụ thể. Ví dụ: < code là ổn, nhưng <code sẽ bị phân tích sai; &am; là ổn, nhưng & thì không. Tuy nhiên, thực hành tốt là thoát tất cả các ký tự không rõ ràng để tránh nhầm lẫn, đặc biệt nếu bạn đang tạo HTML theo cách lập trình và chèn nội dung <pre>. Trong trường hợp này, đây là quy tắc hữu ích để thoát ký tự:
- Đầu tiên, viết nội dung ra, như bạn muốn nó xuất hiện trong tài liệu HTML.
- Thay thế bất kỳ dấu và (
&) bằng&. Thực hiện bước này trước, để các ký tự&mới được tạo ra trong bước tiếp theo không bị thoát. - Thay thế bất kỳ ký tự
<bằng<.
Điều này sẽ dẫn đến nội dung được hiển thị như bạn dự định. Việc thay thế các ký tự cú pháp HTML khác là tùy chọn (như > thành >, " thành " và ' thành '), nhưng sẽ không gây hại gì.
HTML
<pre><code>
let i = 5;
if (i < 10 && i > 0)
return "Single Digit Number"
</code></pre>
Kết quả
Tóm tắt kỹ thuật
| Danh mục nội dung | Nội dung luồng, nội dung hữu hình. |
|---|---|
| Nội dung được phép | Nội dung diễn đạt. |
| Bỏ qua thẻ | Không, cả thẻ mở và thẻ đóng đều bắt buộc. |
| Phần tử cha được phép | Bất kỳ phần tử nào chấp nhận nội dung luồng. |
| Vai trò ARIA ngầm định |
generic
|
| Vai trò ARIA được phép | Bất kỳ |
| Giao diện DOM | HTMLPreElement |
Thông số kỹ thuật
| Specification |
|---|
| HTML> # the-pre-element> |
Tương thích trình duyệt
Xem thêm
- CSS:
white-space,word-break - Character reference
- Các phần tử liên quan:
<code>,<samp>,<kbd>