자동 여백이 페이지의 중앙에 있지 않음


97

에서는 이미지 중심 아니다. 왜? 내 브라우저는 IE가 아닌 Windows 7의 Google Chrome v10입니다.

<img src="/img/logo.png" style="margin:0px auto;"/>

스타일 클래스를 테스트 해보니 이것이 작동하지 않는다는 것을 발견했습니다. margin : 0 auto; 일부 테스트 후 요소에 추가하는 클래스 이름이 요소와 동일한 이름을 가지면 작동하지 않는다는 것을 발견했습니다.
LostLight 2015 년

답변:


218

추가 display:block;하면 작동합니다. 이미지는 기본적으로 인라인입니다.

명확히하기 위해 block요소 의 기본 너비 는이며 auto, 물론 포함하는 요소의 사용 가능한 전체 너비를 채 웁니다.

에 여백을 설정함으로써 auto반 브라우저 양수인에 남은 공간, margin-left그리고에 나머지 절반 margin-right.


12
+1 맞습니다. margin:auto흐름에서 항목을 중앙에 배치하는 데 필요한 사항에 대해 자세히 설명하면 훌륭한 답변이 될 것 입니다. ( display:block또는 display:table, position:static또는 position:relative등)
Phrogz 2011

1
@Phrogz가 동의했습니다. 설명을 추가했습니다.
Ross

15
이것을 읽는 사람들은 다른 종류의 플로트가 당신의 마진을 자동으로 파산시킬 것이기 때문에 "플로트"없음을 추가하는 것이 유용 할 수도 있습니다.
Code Whisperer

그러나 여전히 중앙에 있지 않습니다. 수평으로 만 중앙에 있습니다. 세로로 가운데를 맞추고 싶지만 0px auto그냥 auto바꾸어도 안됩니다.
Aaron Franke

14

어떤 상황에서 상속 (예 : IE, 도마뱀 붙이, 웹킷의 이전 버전으로)을 가진 요소는 position:relative;방지 할 수 있습니다 margin:0 auto;경우에도 작동 top, right, bottom, 그리고이 left설정되지 않습니다.

요소를 position:static;(기본값) 로 설정하면 이러한 상황에서 문제가 해결 될 수 있습니다. 일반적으로 지정된 너비를 가진 블록 레벨 요소 margin:0 auto;relative또는 static위치 지정을 사용합니다 .


1
margin: 0 auto그들은 더 플로트와 지정된 폭 블록 요소는 다음과 같이 ... 긴 상대적 위치 요소에 잘 작동합니다
권태

풍자라고 생각합니다. 부정확하지 않도록 답변을 편집하면 반대표를 제거하겠습니다. 나는 거의 15 년 동안 CSS를 작성 봤는데 지금까지 상대적으로 요소 폭 고정되어 위치 수평 중심에 작동하지 않는 자동 여백을 기억할 수없는 - 같은 다른 속성 비록 floatdisplay그 동작을 변경할 수 있습니다.
Ennui

14

자동 너비 div를 중앙에 배치 할 수 있습니다. display:table;

div{
margin: 0px auto;
float: none;
display: table;
}

1
이것은 효과가 있으며 이유를 모르겠습니다. 설명해 주시겠습니까?
ThatsJustCheesy

1
나는 이것을 전에 사용한 적이 없지만 지금은 나를 위해 작동합니다.
zkytony

10

제 경우 문제는 너비 자체 없이 최소 및 최대 너비 를 설정했다는 것입니다.


3
요약하자면 : 요소가 있어야합니다 position:static, 고정이 width:세트를 할 display:block요소
조이 T

자동으로 사용할 수 100 % 사용하여 내 사업부를 설정 부트 스트랩 - 그것은 폭이 너무 나를 위해 문제였다
에드먼드 Sulzanok

6

너비를 추가하지 않고 추가 할 때마다 margin:auto작동하지 않을 것이라고 생각합니다. 제 경험입니다. 너비는 정확히 동일한 여백을 제공해야하는 위치에 대한 아이디어를 제공합니다.


2

에 대한 대안이 margin-left:auto; margin-right: auto;또는 margin:0 auto;사용하는 사람을위한 position:absolute;이 어떻게되어
(당신이 50 %로 요소의 왼쪽 위치를 설정left:50%; )하지만 올바르게 중심되는 요소의 순서를 제대로 중심을하지 않습니다 당신은 그것을 줄 필요 너비의 절반을 뺀 여백은 요소를 완벽하게 중앙에 배치합니다.

다음은 예입니다. http://jsfiddle.net/35ERq/3/


0

부트 스트랩 버튼의 경우 :

display: table; 
margin: 0 auto;

0

이것을 본문의 CSS에 넣으십시오 : background : # 3D668F; 다음 추가 : 표시 : 블록; 여백 : 자동; img의 CSS에.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.