🌐 HTML Cơ Bản /vs2015.min.css">

📝 Bài 2: Thẻ văn bản (Text Tags)

Học cách định dạng và hiển thị text trong HTML - từ tiêu đề đến đoạn văn

📖 Thẻ văn bản là gì?

💡 Định nghĩa

Thẻ văn bản (Text Tags) là những thẻ HTML được sử dụng để hiển thị và định dạng nội dung văn bản trên trang web. Chúng bao gồm tiêu đề, đoạn văn, danh sách, và các thẻ định dạng text.

🎯 Các nhóm thẻ văn bản chính:

📑

1. Heading Tags

Tạo tiêu đề với 6 cấp độ từ h1 đến h6

<h1> <h2> <h3> <h4> <h5> <h6>
📄

2. Paragraph Tags

Hiển thị đoạn văn bản và ngắt dòng

<p> <br> <hr>
📋

3. List Tags

Tạo danh sách có thứ tự và không thứ tự

<ul> <ol> <li> <dl>

4. Formatting Tags

Định dạng text: in đậm, in nghiêng, gạch chân...

<strong> <em> <u> <mark>

📑 Heading Tags (Thẻ tiêu đề)

🎯 Heading Tags là gì?

HTML cung cấp 6 cấp độ tiêu đề từ <h1> đến <h6>, trong đó <h1> là tiêu đề quan trọng nhất và <h6> là ít quan trọng nhất.

6 cấp độ tiêu đề HTML
<h1>Tiêu đề cấp 1 - Quan trọng nhất</h1>
<h2>Tiêu đề cấp 2 - Phần chính</h2>
<h3>Tiêu đề cấp 3 - Tiểu mục</h3>
<h4>Tiêu đề cấp 4 - Chi tiết</h4>
<h5>Tiêu đề cấp 5 - Phụ</h5>
<h6>Tiêu đề cấp 6 - Ít quan trọng nhất</h6>

👁️ Hiển thị thực tế:

Tiêu đề cấp 1 - Quan trọng nhất

Tiêu đề cấp 2 - Phần chính

Tiêu đề cấp 3 - Tiểu mục

Tiêu đề cấp 4 - Chi tiết

Tiêu đề cấp 5 - Phụ
Tiêu đề cấp 6 - Ít quan trọng nhất

✅ Quy tắc sử dụng Heading:

  • 🏆 Một h1 per page: Mỗi trang chỉ nên có một thẻ h1
  • 📊 Hierarchy logic: Không nhảy cấp (h1→h2→h3, không h1→h3)
  • 🔍 SEO friendly: Search engines đọc heading để hiểu cấu trúc
  • Accessibility: Screen readers sử dụng heading để navigate
  • 📱 Mobile first: Heading cần rõ ràng trên mobile

📄 Paragraph Tags (Thẻ đoạn văn)

📝 Thẻ <p> - Paragraph

Sử dụng thẻ paragraph
<p>Đây là một đoạn văn bản đầu tiên.</p>

<p>Đây là đoạn văn thứ hai. Mỗi thẻ p sẽ tự động tạo khoảng cách 
với đoạn văn khác.</p>

<p>Trong HTML, dù bạn viết nhiều dòng như thế này,
    hoặc có nhiều spaces        như vậy,
        browser vẫn chỉ hiển thị một dòng và một space.</p>

👁️ Kết quả hiển thị:

Đây là một đoạn văn bản đầu tiên.

Đây là đoạn văn thứ hai. Mỗi thẻ p sẽ tự động tạo khoảng cách với đoạn văn khác.

Trong HTML, dù bạn viết nhiều dòng như thế này, hoặc có nhiều spaces như vậy, browser vẫn chỉ hiển thị một dòng và một space.

🔄 Thẻ <br> - Line Break và <hr> - Horizontal Rule

Break tags
<p>Dòng thứ nhất<br>
Dòng thứ hai (có <br> phía trên)</p>

<p>Đoạn văn trước đường kẻ</p>
<hr>
<p>Đoạn văn sau đường kẻ</p>

<!-- Địa chỉ thường dùng br -->
<address>
Công ty ABC<br>
123 Đường XYZ<br>
Quận 1, TP.HCM<br>
Phone: 0123-456-789
</address>

👁️ Kết quả hiển thị:

Dòng thứ nhất
Dòng thứ hai (có <br> phía trên)

Đoạn văn trước đường kẻ


Đoạn văn sau đường kẻ

Công ty ABC
123 Đường XYZ
Quận 1, TP.HCM
Phone: 0123-456-789

📋 List Tags (Thẻ danh sách)

🔢 Ordered List - Danh sách có thứ tự

Ordered List (<ol>)
<!-- Danh sách mặc định (1, 2, 3...) -->
<ol>
    <li>Học HTML</li>
    <li>Học CSS</li>
    <li>Học JavaScript</li>
</ol>

<!-- Danh sách chữ cái (a, b, c...) -->
<ol type="a">
    <li>Frontend Development</li>
    <li>Backend Development</li>
    <li>DevOps</li>
</ol>

<!-- Bắt đầu từ số 5 -->
<ol start="5">
    <li>Bước 5: Testing</li>
    <li>Bước 6: Deployment</li>
    <li>Bước 7: Maintenance</li>
</ol>

👁️ Kết quả hiển thị:

Danh sách mặc định:
  1. Học HTML
  2. Học CSS
  3. Học JavaScript
Danh sách chữ cái:
  1. Frontend Development
  2. Backend Development
  3. DevOps
Bắt đầu từ số 5:
  1. Bước 5: Testing
  2. Bước 6: Deployment
  3. Bước 7: Maintenance

🔸 Unordered List - Danh sách không thứ tự

Unordered List (<ul>)
<!-- Danh sách bullet points -->
<ul>
    <li>HTML</li>
    <li>CSS</li>
    <li>JavaScript</li>
</ul>

<!-- Danh sách lồng nhau (nested) -->
<ul>
    <li>Frontend Technologies
        <ul>
            <li>HTML5</li>
            <li>CSS3</li>
            <li>JavaScript ES6+</li>
        </ul>
    </li>
    <li>Backend Technologies
        <ul>
            <li>Node.js</li>
            <li>Python</li>
            <li>PHP</li>
        </ul>
    </li>
</ul>

👁️ Kết quả hiển thị:

Danh sách đơn giản:
  • HTML
  • CSS
  • JavaScript
Danh sách lồng nhau:
  • Frontend Technologies
    • HTML5
    • CSS3
    • JavaScript ES6+
  • Backend Technologies
    • Node.js
    • Python
    • PHP

📖 Description List - Danh sách mô tả

Description List (<dl>)
<dl>
    <dt>HTML</dt>
    <dd>HyperText Markup Language - Ngôn ngữ đánh dấu siêu văn bản</dd>
    
    <dt>CSS</dt>
    <dd>Cascading Style Sheets - Ngôn ngữ định dạng giao diện</dd>
    
    <dt>JavaScript</dt>
    <dd>Ngôn ngữ lập trình cho web</dd>
    <dd>Có thể chạy trên browser và server</dd>
</dl>

👁️ Kết quả hiển thị:

HTML
HyperText Markup Language - Ngôn ngữ đánh dấu siêu văn bản
CSS
Cascading Style Sheets - Ngôn ngữ định dạng giao diện
JavaScript
Ngôn ngữ lập trình cho web
Có thể chạy trên browser và server

✨ Text Formatting Tags

🎨 Formatting Tags là gì?

Các thẻ định dạng giúp làm nổi bật, nhấn mạnh hoặc thay đổi giao diện của văn bản mà không thay đổi ý nghĩa cơ bản.

Các thẻ formatting phổ biến
<!-- Text Emphasis -->
<p>Văn bản <strong>quan trọng</strong> và <em>nhấn mạnh</em></p>
<p>Văn bản <b>in đậm</b> và <i>in nghiêng</i></p>

<!-- Text Decoration -->
<p>Văn bản <u>gạch chân</u> và <s>gạch ngang</s></p>
<p>Văn bản <mark>được highlight</mark> quan trọng</p>

<!-- Special Formatting -->
<p>Công thức: H<sub>2</sub>O và E = mc<sup>2</sup></p>
<p>Đây là <small>chữ nhỏ</small> và <del>nội dung bị xóa</del></p>

<!-- Code và Quotes -->
<p>Sử dụng tag <code>&lt;p&gt;</code> để tạo đoạn văn</p>
<p><q>Đây là quote ngắn</q> trong câu</p>

<blockquote>
    <p>Đây là một quote dài, thường được sử dụng để trích dẫn 
    từ nguồn khác hoặc làm nổi bật một ý quan trọng.</p>
    <footer>— <cite>Tác giả nổi tiếng</cite></footer>
</blockquote>

👁️ Kết quả hiển thị:

Văn bản quan trọngnhấn mạnh

Văn bản in đậmin nghiêng

Văn bản gạch chângạch ngang

Văn bản được highlight quan trọng

Công thức: H2O và E = mc2

Đây là chữ nhỏnội dung bị xóa

Sử dụng tag <p> để tạo đoạn văn

Đây là quote ngắn trong câu

Đây là một quote dài, thường được sử dụng để trích dẫn từ nguồn khác hoặc làm nổi bật một ý quan trọng.

Tác giả nổi tiếng

🤔 Semantic vs Visual Tags:

  • Semantic (ưu tiên): <strong>, <em> - có ý nghĩa
  • Visual (hạn chế): <b>, <i> - chỉ giao diện
  • Tại sao: SEO và Accessibility tốt hơn với semantic tags

💪 Bài tập thực hành

🎯 Bài tập 1: Tạo trang blog cá nhân

Tạo một trang blog đơn giản với các yêu cầu sau:

Yêu cầu bài tập
<!-- 
🎯 YÊU CẦU:
1. Tiêu đề chính (h1): "Blog của [Tên bạn]"
2. Mô tả ngắn (p): Giới thiệu về blog
3. Bài viết 1:
   - Tiêu đề h2: "Học HTML cơ bản"
   - Đoạn mở đầu với strong, em
   - Danh sách ol: 5 bước học HTML
   - Quote về tầm quan trọng của HTML
4. Bài viết 2:
   - Tiêu đề h2: "Công nghệ web hiện đại"  
   - Đoạn văn có mark, code
   - Danh sách ul: Frontend technologies
   - Công thức với sub/sup nếu có
5. Footer: Thông tin liên hệ với br

✅ SỬ DỤNG:
- h1, h2, p, strong, em, ol, ul, li
- mark, code, sub, sup
- blockquote, br
- Ít nhất 10 thẻ text khác nhau
-->

<!DOCTYPE html>
<html lang="vi">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Blog cá nhân</title>
</head>
<body>
    <!-- Viết code của bạn ở đây -->
    
    
    
    
    
</body>
</html>

🎯 Bài tập 2: Tạo CV online

CV Template
<!-- 
📄 YÊU CẦU CV:
1. Header:
   - h1: Tên của bạn
   - p: Chức danh mong muốn (ví dụ: Junior Web Developer)

2. Thông tin cá nhân:
   - h2: "Thông tin liên hệ"
   - address với br: Email, phone, địa chỉ

3. Học vấn:
   - h2: "Học vấn"
   - dl: Trường - Chuyên ngành - Thời gian

4. Kỹ năng:
   - h2: "Kỹ năng"
   - ul: Danh sách kỹ năng với strong cho level

5. Kinh nghiệm:
   - h2: "Kinh nghiệm"
   - h3: Tên công ty
   - p: Mô tả công việc với em, strong

6. Quote cá nhân:
   - blockquote: Triết lý làm việc của bạn

💡 GỢI Ý:
- Dùng mark để highlight kỹ năng mạnh
- Dùng time cho thời gian
- Dùng cite cho nguồn quote
-->

<!-- Tạo CV của bạn ở đây -->

💡 Hướng dẫn làm bài:

  1. 📝 Bắt đầu với cấu trúc: HTML5 boilerplate với doctype
  2. 📑 Heading hierarchy: h1 cho tiêu đề chính, h2 cho sections
  3. 📄 Content structure: Mỗi đoạn ý trong một thẻ p
  4. 📋 Lists logic: ol cho có thứ tự, ul cho không thứ tự
  5. Formatting purpose: strong cho quan trọng, em cho nhấn mạnh
  6. 🎯 Semantic meaning: Chọn thẻ theo ý nghĩa, không phải giao diện

🚫 Những lỗi cần tránh:

  • Nhiều h1: Chỉ một h1 per page
  • Nhảy cấp heading: Không h1 → h3, phải h1 → h2 → h3
  • Lạm dụng br: Dùng p thay vì nhiều br
  • Empty elements: Không để thẻ trống như <p></p>
  • Visual over semantic: Ưu tiên strong hơn b, em hơn i

📝 Tổng kết bài học

🎯 Những điều đã học được:

  • Heading Tags: h1-h6 để tạo cấu trúc tiêu đề
  • Paragraph Tags: p, br, hr để tổ chức đoạn văn
  • List Tags: ol, ul, dl để tạo danh sách
  • Formatting Tags: strong, em, mark, code để định dạng
  • Semantic HTML: Chọn thẻ theo ý nghĩa, không phải giao diện

🚀 Bước tiếp theo:

Trong Bài 3, chúng ta sẽ học về Links & Media Tags - cách tạo liên kết giữa các trang và nhúng hình ảnh, video, audio vào website.

🔗 Tiếp tục Bài 3: Links & Media →