Các cách căn giữa trong css

Trong quá trình làm giao diện chắc chắn chúng ta sẽ phải căn giữa một item nào đó trong giao diện, có rất nhiều cách để có thể căn giữa một item. Trong bài viết hôm nay mình sẽ chia sẻ mọi người 3 cách căn giữa, tùy vào từng trường hợp các bạn có

Trong quá trình làm giao diện chắc chắn chúng ta sẽ phải căn giữa một item nào đó trong giao diện, có rất nhiều cách để có thể căn giữa một item. Trong bài viết hôm nay mình sẽ chia sẻ mọi người 3 cách căn giữa, tùy vào từng trường hợp các bạn có thể áp dụng các cách khác nhau nhưng cứ cách nào đơn giản nhất thì các bạn hãy sử dụng

Đầu tiên ta sẽ sử dụng chung 1 file html như sau để tiến hành căn giữa trong cả 3 trường hợp

<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><link rel="stylesheet" href="./main.css"></head><body><div class="box"><h3>Center me</h3></div></body></html>

và file css main.css

*{
  padding:0;
  margin:0;}.box {
  background-color: salmon;
  width:100%;
  height:300px;}

Sử dụng line-height

Đầu tiên để căn giữa theo chiều ngang ta thêm thuộc tính text-align: center cho thẻ H3. Để có thể căn theo chiều dọc ta sẽ thêm thuộc tính line-height: 300px cho thẻ H3. Đối với chữ thì nó sẽ luôn luôn nằm giữa chiều cao của dòng chữ đó cho nên ta chỉ cần điều chỉnh chiều cao của dòng chữ đúng bằng với thẻ cha của nó thì chữ sẽ tự động được căn giữa theo chiều dọc ở đây box có chiều cao là 300px nên tao set line-height của H3 bằng 300px ta được kết quả

h3 {
  text-align: center;
  line-height:300px;}

Sử dụng Flexbox

Đề căn giữa sử dụng Flexbox ta cần set cho thẻ cho của thẻ ta cần căn giữa có thuộc tính display: flex, căn giữa theo chiều ngang justify-content: center;, căn giữa theo chiều dọc align-items: center;
ta cũng thu được kết quả tương tự

.box {
  background-color: salmon;
  width:100%;
  height:300px;
  display: flex;
  justify-content: center;
  align-items: center;}

Sử dụng position

Để căn giữa bằng positon thì đầu tiên thẻ cha của thẻ cần căn giữa phải có position: relative;, thẻ con thì sẽ có position: absolute;. Khi đó ta muốn căn giữa theo chiều ngang ta sẽ cho thẻ cho cách left 50% left: 50% khi đó thẻ con sẽ cách bên trái 50% nhưng ta muốn thẻ này phải nằm giữa của màn hình thì ta tiến hành lùi thẻ con lại 50% so với chiều cao của chính nó khi đó nó sẽ nằm giữa theo chiều ngang transform: translateX(-50%);. Đối với chiều dọc thì tương tự ta được

.box {
  background-color: salmon;
  width:100%;
  height:300px;
  position: relative;}

h3 {
  position: absolute;
  left:50%;
  transform:translateX(-50%);
  top:50%;
  transform:translateY(-50%);}

Tổng kết

Đó là 3 cách căn giữa 1 item bên trong 1 item khác. Đa phần 3 cách này sẽ giải quyết được các trường hợp cần căn giữa. Các bạn có thể linh động tùy vào từng trường hợp mà lựa chọn cách phù hợp để căn giữa 1 item nào đó

Nguồn: viblo.asia

Bài viết liên quan

WebP là gì? Hướng dẫn cách để chuyển hình ảnh jpg, png qua webp

WebP là gì? WebP là một định dạng ảnh hiện đại, được phát triển bởi Google

Điểm khác biệt giữa IPv4 và IPv6 là gì?

IPv4 và IPv6 là hai phiên bản của hệ thống địa chỉ Giao thức Internet (IP). IP l

Check nameservers của tên miền xem website trỏ đúng chưa

Tìm hiểu cách check nameservers của tên miền để xác định tên miền đó đang dùn

Mình đang dùng Google Domains để check tên miền hàng ngày

Từ khi thông báo dịch vụ Google Domains bỏ mác Beta, mình mới để ý và bắt đầ