Câu hỏi phỏng vấn CSS
Câu hỏi

Làm sao để căn chỉnh nội dung của thẻ <p> nằm ngay trung tâm của thẻ <div> trong CSS?

Câu trả lời

Để căn chỉnh nội dung của thẻ <p> nằm ngay trung tâm của thẻ <div>, bạn cần căn chỉnh cả theo chiều ngang (horizontal) và chiều dọc (vertical). Dưới đây là một số cách thực hiện:

Sử dụng Flexbox

Flexbox là một cách hiện đại và linh hoạt để căn chỉnh các phần tử. Bạn có thể sử dụng display: flex trên thẻ <div> và sau đó sử dụng justify-content: center để căn ngang và align-items: center để căn dọc.

css Copy
div {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 100px; /* Hoặc bất kỳ giá trị nào bạn muốn */
}

Sử dụng Position và Transform

Một cách khác là sử dụng position: relative cho thẻ <div>position: absolute cùng với transform: translate(-50%, -50%) cho thẻ <p>. Điều này sẽ đặt thẻ <p> chính giữa thẻ <div>.

css Copy
div {
  position: relative;
  height: 100px; /* Hoặc bất kỳ giá trị nào bạn muốn */
}

p {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

Sử dụng Text-Align và Padding (Chỉ căn ngang)

Nếu bạn chỉ muốn căn ngang, bạn có thể sử dụng text-align: center cho thẻ <div>. Để căn dọc, bạn có thể thêm padding cho thẻ <p> nhưng phương pháp này chỉ hiệu quả khi bạn biết chính xác kích thước của nội dung.

css Copy
div {
  text-align: center;
  height: 100px; /* Hoặc bất kỳ giá trị nào bạn muốn */
}

p {
  padding-top: 40px; /* Điều chỉnh giá trị này dựa trên nhu cầu */
}

Lưu ý rằng, để các phương pháp trên hoạt động hiệu quả, bạn cần đảm bảo rằng thẻ <div> có một chiều cao xác định. Flexbox là phương pháp được khuyến nghị nhất vì nó dễ dàng và linh hoạt hơn trong việc căn chỉnh các phần tử, đặc biệt khi làm việc với các layout phức tạp

middle

middle

Gợi ý câu hỏi phỏng vấn

middle

Sự khác biệt giữa nth-child()nth-of-type() trong CSS là gì?

middle

Normallizing trong CSS là gì?

expert

Progressive rendering là gì?

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào