Khi cần hiển thị nguyên cú pháp của code hay mã nguồn, hay đơn giản share code trên blog thì ta thường dùng thẻ pre
và code
. Thẻ xmp
cũng có chức năng tương tự, tuy bị loại bỏ trong bản HTML mới nhất nhưng đa số các trình duyệt vẫn hỗ trợ nên mình cũng sẽ nhắc sơ qua. Nào chúng ta sẽ cùng tìm hiểu chức năng và ý nghĩa của các thẻ này nhé.
Thẻ pre là gì? Thẻ code là gì?
Thẻ pre
là dạng văn bản trước định dạng (preformatted text) hiển thị văn bản có độ lớn cố định (vì không chịu ảnh hưởng bởi các định dạng làm to hay thu nhỏ, hay bất kỳ định dạng nào), thường ở font Courier. Các văn bản ở trong thẻ pre
sẽ được giữ nguyên xi khoảng cách (space) hay xuống dòng. Và cũng bởi các đặc tính trên nên thẻ pre
hay được sử dụng để chia sẻ code, các cú pháp trên website cũng như blog.
Thẻ code
thường dùng để hiển thị những cụm từ ngắn hay những đoạn code ngắn cần lưu ý. Sẽ rất là đẹp nếu kết hợp thêm với CSS. Ví dụ như blog mình đang dùng thẻ code
ngay trong bài viết này, chữ màu hồng nền hồng nhạt (do mình chỉnh CSS cho đẹp).
Dùng thẻ pre hiện code HTML
Bình thường thẻ pre
không thể hiển thị code HTML. Khi này chúng ta phải chuyển nó về dạng escape.
&
thay cho&
(ampersand, U+0026)<
thay cho<
(less-than sign, U+003C)>
thay cho>
(greater-than sign, U+003E)"
thay cho"
(quotation mark, U+0022)'
thay cho'
(apostrophe, U+0027)
Ví dụ để hiển thị một đoạn code HTML như vầy bằng thẻ pre
:
<head> <meta name="theme-color" content="#222"> </head>
Ta phải gõ như sau:
<pre><head> <meta name="theme-color" content="#222"> </head></pre>
Đoạn văn bản trong thẻ pre
là đoạn HTML đã được escape. Đến đây thì mình lại đặt ra một câu hỏi. Thế làm sao hiển thị được như vầy nhỉ?
<head> <meta name="theme-color" content="#222"> </head>
Đơn giản bạn chỉ cần thêm &
vô trước mỗi ký tự bị escape. Giống đoạn dưới đây nè:
<pre>&lt;head&gt; &lt;meta name=&quot;theme-color&quot; content=&quot;#222&quot;&gt; &lt;/head&gt;</pre>
Thẻ xmp và chức năng của nó
Thẻ xmp
tương tự như thẻ pre
, nó có chức năng hiển thị mã nguồn. Nhưng ở phiên bản mới nhất nó đã được loại bỏ, và đã là thẻ deprecated. Tuy nhiên, hầu hết các trình duyệt hiện nay đều vẫn hỗ trợ thẻ này. Thẻ này hay hơn thẻ pre
là có thể hiển thị chính xác cả code HTML mà không cần escape, nhưng đáng tiếc nó đã lỗi thời nên không được khuyên dùng mà thay vào đó sẽ dùng thẻ pre
.
Hi vọng những kiến thức này sẽ có ích và gây thú vị cho các bạn!