Menu

Đường kẻ ngang trong HTML: thẻ hr và cách định dạng

Vẽ đường kẻ ngang trong HTML bằng thẻ <hr>. Tìm hiểu ý nghĩa của thẻ, cách đổi màu, độ dày, chiều rộng và kiểu đường bằng CSS, cách tạo đường phân cách có chữ ở giữa, và cách vẽ đường kẻ dọc.

Trang này có trình soạn thảo chạy trực tiếp. Sửa, chạy và xem đầu ra ngay lập tức.

Cách thêm đường kẻ ngang

Đặt <hr> giữa hai khối nội dung. Thẻ này không có thẻ đóng:

Mặc định đường kẻ trải hết chiều rộng của khối chứa, có một khoảng margin nhỏ ở trên và dưới, và được vẽ bằng một đường viền inset mảnh màu xám (một cạnh sáng và một cạnh tối).

<hr> là viết tắt của horizontal rule. Trong HTML, nó mang nghĩa ngắt chủ đề (thematic break): một sự chuyển đổi chủ đề hoặc cảnh bên trong một phần. Trình đọc màn hình đọc nó là một dấu phân cách. Nếu bạn chỉ muốn một đường kẻ trang trí (dưới tiêu đề, quanh một thẻ card), hãy vẽ nó bằng đường viền CSS trên chính phần tử đó.

Định dạng hr bằng CSS

Giao diện mặc định đến từ đường viền, nên cách chắc chắn để định dạng <hr> là bỏ chúng đi rồi tự vẽ một đường viền:

Muốn đổiDùng
Màuborder-top: 2px solid #2563eb (sau border: none)
Độ dàyĐộ rộng trong đường viền đó, như 6px
Kiểu đườngsolid, dashed, dotted, double
Độ dàiwidth: 40%, thêm margin-inline: auto để căn giữa
Bo tròn hai đầuheight + background + border-radius thay cho đường viền
Khoảng cách xung quanhmargin

Chỉ đặt color: blue cho hr vẫn đổi được màu đường kẻ trên các trình duyệt hiện nay, nhưng kiểu inset mặc định tạo bóng cho nó và nó vẫn cao 2px. Đặt lại đường viền cho bạn đúng thứ bạn muốn.

Các thuộc tính hr cũ

Code cũ dùng thuộc tính ngay trên thẻ:

<hr size="4" width="50%" color="red" noshade align="left">

size, width, color, noshade và align đã lỗi thời. Trình duyệt vẫn áp dụng chúng để các trang cũ hiển thị đúng, nhưng chúng là HTML không hợp lệ và khó sửa về sau. Hãy thay chúng bằng CSS ở trên.

Đường phân cách có chữ ở giữa

Dòng "or" giữa hai nút đăng nhập không phải là <hr> (hr không thể chứa chữ). Đó là một hàng flex với một đường kẻ ở mỗi bên chữ:

Hai phần ::before và ::after mỗi bên chiếm một nửa khoảng trống nhờ flex: 1 và vẽ một đường viền trên. Đổi or thành một từ dài hơn là các đường kẻ co lại cho vừa.

Đường kẻ dọc

Không có phiên bản dọc của <hr>. Hãy vẽ đường kẻ dọc bằng đường viền ở một cạnh của phần tử, hoặc bằng một phần tử mảnh bên trong một hàng flex:

border-inline-start đặt đường kẻ ở đầu dòng chữ, tức là bên trái trong tiếng Việt và bên phải trong tiếng Ả Rập hay tiếng Do Thái, nên bố cục chạy đúng theo cả hai chiều.

Lỗi thường gặp

  • Viết </hr>. <hr> là phần tử rỗng. Chỉ cần <hr> hoặc <hr />.
  • Dùng <hr> để trang trí. Trình đọc màn hình đọc từng thẻ một. Đường kẻ chỉ để nhìn thì thuộc về CSS.
  • Định dạng chỉ bằng color. Đặt lại đường viền bằng border: none rồi đặt border-top.
  • Dùng <br> hoặc dấu gạch dưới để vẽ đường kẻ. Hãy dùng <hr> hoặc đường viền. Xem trang xuống dòng để biết <br> dùng vào việc gì.
  • Dùng thuộc tính lỗi thời. Chuyển size, width, color và noshade sang CSS.

Câu hỏi thường gặp

Làm sao thêm đường kẻ ngang trong HTML?

Dùng thẻ <hr> trên một dòng riêng. Đây là phần tử rỗng (void element), không có thẻ đóng, và nó vẽ một đường kẻ ngang hết chiều rộng của khối chứa.

Làm sao đổi màu thẻ hr?

Bỏ đường viền mặc định và tự vẽ đường của bạn: hr { border: none; border-top: 2px solid #2563eb; }. Chỉ đặt color cũng đổi được màu, nhưng kiểu inset mặc định vẫn giữ nó có bóng và hai tông màu.

Làm sao để thẻ hr dày hơn?

Đặt độ dày đường viền: hr { border: none; border-top: 4px solid #111827; }. Thuộc tính size trong các hướng dẫn cũ vẫn chạy trên trình duyệt nhưng đã lỗi thời, nên hãy dùng CSS.

hr là viết tắt của gì?

Horizontal rule (đường kẻ ngang). Trong HTML hiện nay, nó mang nghĩa ngắt chủ đề: một sự chuyển đổi chủ đề hoặc cảnh giữa các đoạn văn. Trình đọc màn hình đọc nó là một dấu phân cách.

Làm sao tạo đường kẻ dọc trong HTML?

HTML không có thẻ kẻ dọc. Hãy thêm đường viền vào một cạnh của phần tử, như border-inline-start: 2px solid #e5e7eb, hoặc dùng một phần tử hẹp có màu nền bên trong một hàng flex.

Hình minh họa các ngôn ngữ lập trình của Coddy

Học lập trình cùng Coddy

Bắt đầu