Trợ giúp

Căn giữa div trong CSS đơn giản và chính xác

Công cụ hỗ trợ bạn tạo nhanh mã CSS để căn giữa các thẻ con trong thẻ cha theo đúng yêu cầu giao diện. Bạn chỉ cần chọn phương pháp dàn trang và trục căn chỉnh, công cụ sẽ tự động xuất mã CSS chuẩn xác để sao chép. Giải pháp này giúp xử lý các vấn đề bố cục phổ biến mà không cần ghi nhớ từng thuộc tính riêng biệt.


Cách căn giữa thẻ div với công cụ

Công cụ giúp tạo mã CSS chuẩn xác chỉ với vài thao tác đơn giản:

  1. Chọn phương pháp dàn trang phù hợp như Flexbox, Grid hoặc Tuyệt đối.
  2. Chọn trục cần căn chỉnh theo chiều ngang, chiều dọc hoặc Cả hai.
  3. Xem trước kết quả trực tiếp và sao chép đoạn mã CSS đã được tạo ở bên dưới.

Căn giữa div trong CSS bằng Flexbox và Grid

Flexbox là lựa chọn phổ biến nhất khi cần dàn trang web. Trên thẻ cha, bạn khai báo display: flex kết hợp cùng justify-content: center để căn ngang và align-items: center để căn dọc.

Nếu muốn ngắn gọn hơn, Grid cho phép xử lý cả hai chiều cùng lúc. Với display: grid và place-items: center khai báo trên thẻ cha, phần tử con sẽ nằm chính giữa khung hình mà không cần thêm thuộc tính phụ nào.

Căn giữa theo chiều dọc CSS và chiều ngang

Khi chỉ cần căn giữa theo chiều ngang trong Flexbox hoặc Grid, bạn áp dụng thuộc tính justify-content: center lên thẻ cha và giữ nguyên trục dọc.

Đối với nhu cầu căn giữa theo chiều dọc trong CSS, thuộc tính align-items: center trên thẻ cha Flexbox hoặc Grid sẽ đẩy thẻ con vào đúng vị trí trung tâm theo chiều đứng.

Căn giữa phần tử trong CSS bằng vị trí Tuyệt đối

Phương pháp Tuyệt đối áp dụng khi bạn không thể thay đổi kiểu display của thẻ cha. Thẻ cha cần khai báo position: relative để làm khung tham chiếu, còn thẻ con đặt position: absolute.

Để căn giữa cả hai chiều, thẻ con dùng top: 50%, left: 50% cùng transform: translate(-50%, -50%). Thuộc tính transform sẽ kéo phần tử ngược lại một nửa kích thước của chính nó để nằm chuẩn giữa.

Lưu ý rằng phương pháp này đưa phần tử ra khỏi luồng tài liệu thông thường, có thể làm xẹp thẻ cha nếu thẻ cha không có độ cao cố định hoặc phần tử khác giữ chiều cao.


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

Làm sao để căn giữa div trong CSS cả chiều ngang và chiều dọc?

Cách ngắn nhất để căn giữa hai chiều là dùng Grid bằng cách đặt display: grid và place-items: center trên thẻ cha. Nếu dùng Flexbox, bạn khai báo display: flex trên thẻ cha cùng với justify-content: center và align-items: center. Cả hai phương pháp này đều giúp phần tử con nằm chính giữa khung chứa.

Làm cách nào để căn giữa div trong CSS mà không dùng Flexbox?

Bạn có thể sử dụng CSS Grid hoặc vị trí Tuyệt đối. Với Grid, hãy đặt display: grid và place-items: center trên thẻ cha. Với vị trí Tuyệt đối, thẻ cha cần position: relative, còn thẻ con dùng position: absolute, top: 50%, left: 50% và transform: translate(-50%, -50%).

Tại sao thuộc tính justify-content: center không hoạt động?

Thuộc tính justify-content chỉ có tác dụng khi thẻ cha được khai báo display: flex hoặc display: grid. Nếu thiếu khai báo này, thuộc tính sẽ không ăn và phần tử vẫn giữ vị trí mặc định. Ngoài ra, việc nhầm lẫn giữa justify-content và align-items cũng là lý do phổ biến khiến giao diện bị lệch.

Cách căn giữa chữ theo chiều dọc CSS hoặc nút bấm như thế nào?

Nút bấm hoặc các phần tử khác như hình ảnh đều được căn giữa tương tự như một thẻ div thông thường. Bạn chỉ cần đặt display: flex và align-items: center trên thẻ cha để căn giữa phần tử con theo chiều dọc. Không cần thêm thuộc tính CSS đặc biệt nào trực tiếp lên nút bấm hay hình ảnh.

Khi nào nên dùng vị trí Tuyệt đối để căn giữa phần tử?

Bạn chỉ nên dùng vị trí Tuyệt đối khi không thể thay đổi kiểu display của thẻ cha. Phương pháp này đưa phần tử ra khỏi luồng tài liệu chuẩn, dễ khiến thẻ cha bị xẹp chiều cao nếu không có phần tử khác giữ khung.

Làm sao để căn giữa css div chỉ theo chiều ngang hoặc chỉ chiều dọc?

Để căn giữa chỉ theo chiều ngang, áp dụng justify-content: center trên thẻ cha Flexbox hoặc Grid. Để căn giữa chỉ theo chiều dọc, áp dụng align-items: center trên thẻ cha. Nếu dùng vị trí Tuyệt đối, đặt left: 50% kèm transform: translateX(-50%) cho chiều ngang, hoặc top: 50% kèm transform: translateY(-50%) cho chiều dọc.

Cách căn giữa div trong css bằng vị trí Tuyệt đối hoạt động như thế nào?

Kỹ thuật này đưa góc trên bên trái của thẻ con đến đúng điểm chính giữa thẻ cha nhờ top: 50% và left: 50%. Sau đó, thuộc tính transform: translate(-50%, -50%) kéo thẻ con ngược lại một nửa chiều rộng và chiều cao của chính nó để nằm căn giữa hoàn toàn.