>  기사  >  웹 프론트엔드  >  왜 \"margin: auto\" 요소를 수직 중앙에 배치하지 않습니까?

왜 \"margin: auto\" 요소를 수직 중앙에 배치하지 않습니까?

Barbara Streisand
Barbara Streisand원래의
2024-11-03 11:52:29896검색

Why Doesn't

"margin: auto"에 대한 수직 센터링 난제

CSS 세계에서 "margin: auto" 속성은 인기 있는 도구입니다. 가로 중심 요소의 경우. 그러나 수직 정렬의 경우에는 종종 부족합니다.

제공된 예에서 알 수 있듯이 "margin: auto"가 있는 파란색 div는 쉽게 수평 중앙에 배치되지만 수직 정렬은 조정되지 않은 상태로 유지됩니다. 그 이유는 CSS2.1의 사양(섹션 10.6.2)에 있습니다.

블록 레이아웃에서는 요소가 수직으로 쌓이고 여백이 무너질 수 있습니다. 자동 높이와 테두리가 있는 상위 블록 상자의 경우 여백은 자연스럽게 0으로 설정됩니다. 그러나 여러 블록 상자가 도입되거나 추가 요소가 레이아웃(예: 클리어런스)에 영향을 미치는 경우 자동 여백이 모호해지고 추가 해결이 필요합니다.

마찬가지로 인라인 요소(원자 인라인 포함) 및 부동 소수점은 자동으로 수직 중앙에 위치할 수 없습니다. 특정 레이아웃 규칙으로 인해 여백이 발생합니다. 그러나 절대 위치 지정 상자에는 위치 지정 컨텍스트 내 다른 요소의 영향을 받지 않으므로 제한이 없습니다. 반면에 Flexbox는 레이아웃에 대한 다른 접근 방식을 제공하여 다른 Flex 항목에 대한 고유한 인식으로 인해 Flex 항목의 자동 여백을 Flex 컨테이너와 관련하여 계산할 수 있습니다.

따라서 " margin: auto"는 요소를 수평으로 효과적으로 중앙에 배치하지만, 블록 레이아웃의 복잡성과 여러 요소가 관련될 때 발생하는 모호함으로 인해 수직 중앙 정렬이 부족합니다.

위 내용은 왜 \"margin: auto\" 요소를 수직 중앙에 배치하지 않습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.