>  기사  >  웹 프론트엔드  >  왜 `margin: auto`는 절대 중심에 위치하지 않거나 위치가 고정된 요소를 고정하지 않습니까?

왜 `margin: auto`는 절대 중심에 위치하지 않거나 위치가 고정된 요소를 고정하지 않습니까?

Patricia Arquette
Patricia Arquette원래의
2024-11-10 06:06:03912검색

Why Doesn't `margin: auto` Center Absolutely or Fixed Positioned Elements?

Margin:auto만으로는 위치 요소를 중앙에 배치할 수 없는 이유

위치를 사용하여 상위 컨테이너 내의 div 요소를 중앙에 배치하려고 할 때: 절대 또는 위치: 고정 속성, margin: auto만 사용하는 것만으로는 충분하지 않을 수 있습니다.

이해하기 CSS 사양

CSS 사양에 따라 위치: 상대 또는 위치: 정적(일반 흐름) 요소의 경우 margin-left 및 margin-right를 모두 자동으로 수평으로 설정하면 해당 요소를 기준으로 요소가 수평으로 가운데에 배치됩니다. 사용된 값이 동일해지기 때문에 포함 블록입니다. 그러나 이는 위치: 절대 또는 위치: 고정 요소에는 적용되지 않습니다.

왼쪽, 너비, 오른쪽 세 개가 모두 자동인 절대 또는 고정 위치 요소의 경우 margin-left에 사용되는 값 및 margin-right는 중앙 정렬을 방지하기 위해 0으로 설정됩니다. 이러한 요소를 중앙에 배치하려면 왼쪽, 오른쪽 또는 너비 값을 정의해야 합니다.

왼쪽, 오른쪽, 너비 설정 효과

왼쪽, 오른쪽, 너비와 너비가 모두 정의되고 여백은 동일한 값을 가져서 중앙에 배치됩니다. 이러한 값 중 하나라도 생략하면 요소가 중앙 정렬에서 벗어나게 됩니다.

다른 사례를 사용한 데모

다음 표는 CSS에 설명된 다양한 사례를 보여줍니다. 사양:

Margin Setting Centring
margin-left: auto; margin-right: auto Yes (flow element)
margin-left: auto; margin-right: auto No (absolute/fixed element)
left: auto; right: auto; width: auto No (margin set to 0)
left: 0; right: 0; width: auto No (margin set to 0)
right: auto; left: auto; No (margin set to 0)
left: auto; right: auto; width: 200px Yes (equal margins)
left: 0; width: auto Yes (equal margins)
right: 0; width: auto Yes (equal margins)

위 내용은 왜 `margin: auto`는 절대 중심에 위치하지 않거나 위치가 고정된 요소를 고정하지 않습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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