Menu
CoddyTech

Tạo chủ đề cho kiểu chữ

Thuộc phần Thực hành frontend trong hành trình HTML của Coddy. Bài học 15 trên 35.

Kiểu chữ là một phần quan trọng trong việc tạo chủ đề và thiết kế. Thay vì viết kiểu chữ ở khắp nơi, chúng ta có thể định nghĩa chúng thành biến CSS rồi dùng lại trên toàn bộ trang web. Cách này giúp giữ phong cách nhất quán và dễ thay đổi hơn về sau.

Bạn có thể định nghĩa biến cho:

  • Họ phông chữ (ví dụ: --font-family-base, --font-family-heading)
  • Cỡ chữ (ví dụ: --font-size-base, --font-size-h1)
  • Chiều cao dòng
  • Khoảng cách giữa các chữ cái

Trước tiên, hãy định nghĩa các biến kiểu chữ trong phần tử :root:

:root {
  --font-primary: 'Open Sans', sans-serif;
  --font-secondary: 'Roboto', sans-serif;
  --font-size-base: 16px;
  --line-height: 1.5;
  --heading-color: #333;
  --text-color: #555;
}

Bây giờ, hãy áp dụng các biến này cho những phần tử văn bản:

body {
  font-family: var(--font-primary);
  font-size: var(--font-size-base);
  line-height: var(--line-height);
  color: var(--text-color);
}

h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-secondary);
  color: var(--heading-color);
}

Thiết lập này tạo ra một hệ thống kiểu chữ thống nhất mà bạn có thể dễ dàng chỉnh sửa bằng cách thay đổi giá trị của các biến tại một nơi.

challenge icon

Thử thách

Dễ

Tạo chủ đề kiểu chữ cho một trang blog với các biến riêng cho tiêu đề và văn bản đoạn văn. Nhiệm vụ của bạn:

  1. Định nghĩa các biến CSS cho:
    • Cỡ chữ cho tiêu đề (--h1-size và --h2-size)
    • Màu chữ cho các đoạn văn  (--text-color): chọn màu không phải đen tuyền để dễ đọc hơn
    • Màu chữ cho tiêu đề   ( --heading-color ): chọn màu nổi bật so với văn bản phần thân
  2. Áp dụng các biến này để định kiểu:
    • Văn bản phần thân 
    • Các tiêu đề h1 và h2

CSS của bạn nên tạo thứ bậc trực quan rõ ràng giữa tiêu đề và văn bản đoạn văn.

Tự làm thử

<!DOCTYPE html>
<html>
<head>
  <title>Typography Theming</title>
  <style>
    :root {
      /* Typography variables */
      --primary-font: "Georgia", serif;       /* for paragraphs */
      --secondary-font: "Arial", sans-serif; /* for headings */

    }

    body {
      font-family: var(--primary-font);
      color: #000000;
      line-height: 1.6;
      margin: 0;
      padding: 20px;
      background-color: #f9f9f9;
    }

    h1, h2 {
      font-family: var(--secondary-font);
      color: #000000;
      margin-bottom: 0.5em;
    }

    h1 {
      font-size: 16px;
    }

    h2 {
      font-size: 16px;
    }

    p {
      margin-bottom: 1.2em;
    }

    .blog-post {
      max-width: 700px;
      margin: 0 auto;
      background: #fff;
      padding: 2rem;
      border-radius: 10px;
      box-shadow: 0 2px 8px rgba(0,0,0,0.1);
    }
  </style>
</head>
<body>
  <div class="blog-post">
    <h1>The Beauty of Typography in Web Design</h1>
    <p>Typography plays a crucial role in how users read and experience content online. A good choice of fonts and sizes can make a website more readable and enjoyable.</p>

    <h2>Why Typography Matters</h2>
    <p>Clear and consistent typography improves accessibility, creates a visual hierarchy, and gives your website a professional feel. Without it, even the best design can look unpolished.</p>

    <h2>Mobile-First Typography</h2>
    <p>Starting with smaller, readable text for mobile and scaling up for desktops ensures your content looks great on any device. This approach is part of mobile-first design and theming.</p>
  </div>
</body>
</html>
quiz iconTự kiểm tra

Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.

Tất cả bài học trong Thực hành frontend

Tự luyện tập: Playground Web