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 đổi | Dùng |
|---|---|
| Màu | border-top: 2px solid #2563eb (sau border: none) |
| Độ dày | Độ rộng trong đường viền đó, như 6px |
| Kiểu đường | solid, dashed, dotted, double |
| Độ dài | width: 40%, thêm margin-inline: auto để căn giữa |
| Bo tròn hai đầu | height + background + border-radius thay cho đường viền |
| Khoảng cách xung quanh | margin |
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ằngborder: nonerồi đặtborder-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,colorvànoshadesang 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.