Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> CSS

Căn giữa nút (Button) dọc và ngang với CSS Flexbox

Cách hiện đại và đơn giản nhất để căn giữa phần tử (button, div, image...) cả theo chiều dọc và ngang là sử dụng Flexbox.

Ví dụ mã nguồn

<!DOCTYPE html>
<html>
<head>
<style>
  body {
    font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
  }
  .centered {
    display: flex;
    justify-content: center; /* Căn giữa ngang */
    align-items: center;     /* Căn giữa dọc */
    height: 200px;
    border: 3px solid rgb(0, 70, 128);
  }
  button{
    font-size: 18px;
    border: none;
    padding:10px;
    background-color: darkblue;
    color:white;
  }
</style>
</head>
<body>
<h1>Ví dụ Căn giữa</h1>
<div class="centered">
  <button>Nút này được căn giữa</button>
</div>
</body>
</html>

Giải thích 2 thuộc tính then chốt

  • justify-content: center - Căn giữa theo trục chính (mặc định là ngang)
  • align-items: center - Căn giữa theo trục chéo (mặc định là dọc)

Các cách khác (để tham khảo)

Phương phápCSSƯu/nhược điểm
Flexboxdisplay:flex; justify-content:center; align-items:center;Đơn giản, responsive, hỗ trợ tốt
Griddisplay:grid; place-items:center;Ngắn gọn nhất, hiện đại
Position + Transformposition:absolute; top:50%; left:50%; transform:translate(-50%,-50%);Cũ, cần position cha, phức tạp hơn
Table-celldisplay:table-cell; vertical-align:middle; text-align:center;Cũ, hỗ trợ IE cũ

Khuyến nghị: Dùng Flexbox hoặc Grid cho dự án mới.