Hiển thị đảo ngược phần tử trong UL – OL bằng CSS

Thông thường, các phần tử trong danh sách <ul> hoặc <ol> sẽ hiển thị theo thứ tự từ trên xuống. Tuy nhiên, trong một số trường hợp (như chat, bình luận mới ở dưới cùng, log hoạt động…), bạn có thể muốn đảo ngược thứ tự hiển thị mà không cần thay đổi thứ tự HTML ban đầu.

Hiển thị đảo ngược phần tử trong UL – OL bằng CSS

Giải pháp rất đơn giản – chỉ cần dùng CSS Flexbox và thuộc tính flex-direction: column-reverse.

Xem demo

1. CSS để đảo ngược danh sách

Thêm class .reverse-list vào thẻ <ul> hoặc <ol> bạn muốn đảo ngược:

.reverse-list {
    display: flex;
    flex-direction: column-reverse;
}

Lưu ý: vì dùng display: flex, nên các style mặc định của <ul> hoặc <ol> (như bullet, số thứ tự) có thể bị ảnh hưởng. Bạn nên cân nhắc dùng thêm list-style-position: inside hoặc custom số thứ tự bằng CSS/JS nếu cần.

2. Thêm nút bấm để đảo ngược danh sách

Nếu muốn người dùng tự bấm nút để đảo ngược danh sách, bạn có thể sử dụng JavaScript/jQuery như sau:

$('#reverse').click(function() {
    if ($(this).hasClass('curr-reverse')) {
        $('#list-to-reverse').removeClass('reverse-list');
        $(this).removeClass('curr-reverse');
    } else {
        $('#list-to-reverse').addClass('reverse-list');
        $(this).addClass('curr-reverse');
    }
});

Chỉ cần thêm và gỡ class reverse-list là danh sách sẽ tự đảo lại theo ý muốn.

3. Ứng dụng thực tế

  • Hiển thị bình luận mới nhất ở dưới cùng, giống hệ thống chat
  • Log hoạt động theo thời gian gần nhất nằm dưới
  • Danh sách thông báo, feed có hiệu ứng “kéo lên để xem cũ”

Kết luận

Đảo ngược danh sách bằng CSS là một kỹ thuật gọn nhẹ, không cần thao tác DOM hoặc thay đổi dữ liệu phía backend. Đây là ví dụ điển hình cho việc tận dụng sức mạnh của Flexbox để cải thiện UX mà vẫn giữ code đơn giản và hiệu quả.

Bình luận


  • Không có bình luận.

Init Toolbox

Nhấn Ctrl + \ trên máy tính, hoặc vuốt sang trái ở bất kỳ đâu trên mobile.

Đăng nhập





Đang tải...