Để căn giữa một div thì sử dụng position: absolute là cách đơn giản và dễ thực hiện nhất. Để căn giữa phần tử div theo cả chiều ngang và chiều dọc bằng CSS, chúng ta có thể sử dụng đoạn mã sau:

Sử dụng thuộc tính position + transform

.parent {
background-color: #3a3845;
width: 100vw;
height: 100vh;

  /* additional style */
  position: relative;
}


.child {
background-color: #f7ccac;
width: 200px;
height: 200px;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

Mã này đặt vị trí của phần tử div thành tuyệt đối, cho phép chúng ta định vị phần tử đó so với vùng chứa chính của nó. Sau đó, chúng tôi đặt các thuộc tính trên cùng và bên trái thành 50%, đặt góc trên cùng bên trái của phần tử div ở giữa vùng chứa chính của nó.

Cuối cùng, chúng tôi sử dụng thuộc tính biến đổi với chức năng dịch để di chuyển phần tử div sao lưu và sang trái 50% chiều rộng và chiều cao của chính nó, căn giữa nó một cách hiệu quả theo cả chiều ngang và chiều dọc.

Điều quan trọng cần lưu ý là phương pháp này chỉ hoạt động nếu vùng chứa chính có chiều cao và chiều rộng xác định. Nếu vùng chứa chính là phần tử body, chúng ta cần đặt chiều cao của cả phần tử body và html thành 100% để phương thức này hoạt động bình thường.

Sử dụng Flexbox

.parent {
background-color: #3a3845;
width: 100vw;
height: 100vh;
  display: flex;
  justify-content: center;
  align-items: center;
}


.child {
background-color: #f7ccac;
width: 200px;
height: 200px;
}


display: flex biến thẻ cha thành Flex container, justify-content: center căn giữa các thẻ con theo chiều ngang, align-items: center căn giữa các thẻ con theo chiều dọc.

Tuỳ vào từng tình huống mà ta dùng các cách một cách linh hoạt nhất. Khi không thể sử dụng cách 1 thì ta dùng cách 2 và ngược lại.

Nội dung bài viết "Căn giữa một DIV theo chiều ngang và dọc bằng css như thế nào ?". Bài viết sẽ được chúng tôi thường xuyên cập nhật và sẽ hiển thị trong 24 giờ tới. Webcode24h luôn cập nhật các bài viết của mình để nó trở nên hữu ích với bạn đọc.

Cảm ơn bạn đã đọc hết bài viết, bạn cũng có thể truy cập danh mục "Lập trình Web, Hỏi đáp code, CSS" dưới để xem các bài viết khác cùng chủ đề trên website của chúng tôi nhé.

Vui lòng để link nguồn bài viết này nếu bạn copy nội dung này

☞ Tài nguyên free

Pass: 'webcode24h.com' nếu có