2017-03-29 2 views
0

컨테이너 div를 오버플로하는 일부 이미지를 가운데로 정렬하려고합니다.컨테이너를 오버플로하는 이미지를 가로로 가운데에 맞 춥니 다.

컨테이너 (및 이미지)는 높이가 160px이므로 작은 화면 크기에서도 높이를 유지하고 싶지만 이미지를 수평 중심으로 유지해야합니다.

나는 행운이없는 margin: 0 auto;을 사용해 보았습니다.

나는 이미지 자체에 margin: 0 -100%;과 함께 컨테이너 div에 text-align: center;을 사용하도록 제안 된 절반 해결책을 발견했습니다. 그러나이 솔루션은 웹킷 기반 브라우저에서만 작동하는 것으로 보입니다.

예 : 파이어 폭스 결과는 이것이다 : The images are moved to the left in their containers and not centered

HTML :

<div class="row-fluid"> 
    <div class="span6"> 
     <a> 
      <img src="image1.jpg"> 
     </a> 
    </div> 
    <div class="span6"> 
     <a> 
      <img src="image2.jpg"> 
     </a> 
    </div> 
</div> 

CSS :

.span6{ 
    height: 160px; 
    overflow: hidden; 
    text-align: center; 
    padding: 0; 
} 


.span6 img{ 
    height: 160px; 
    width: auto; 
    margin: 0 -100%; /*Only works for webkit based browsers*/ 
} 

어떤 아이디어가? 미리 감사드립니다.

.

편집 :

내가 margin: 0 -50%;margin: 0 -100%;를 편집하면 속임수를 썼는지 것을 발견

(모두 크롬, 파이어 폭스, IE 등의). 그러나 더 깨끗한 가능성이 있기 때문에 안드레이의 솔루션을 사용하려고합니다.

+0

추가 DISPALY 도움이 될 수 있음 : 블록이 다음 IMG 여백 사용 : 나는 코드의 빠른 더러운 테스트를 해봤이 작동합니다 0 자동 –

답변

2

는이

.span { 
    display: flex; 
    align-items: center; 
    justify-content: center; 
} 
+0
+0

감사합니다, Andrey. 작동하는 것 같습니다. 나는 마진 : 0-100 %;을 마진 : 0-50 %로 편집하는 것이 트릭을 수행한다는 것을 알게되었습니다. 그러나 당신의 솔루션은 더 깨끗한 것 같아요. – Mads

+0

훨씬 더 깔끔하게 - 음수 여백은 일반적으로 "해킹"에 가깝습니다. 가능한 경우 (이러한 상황과 같은 경우) 피해야합니다. - 브라우저를 철저히 테스트하고 철저히 테스트하십시오. 어쨌든'flex'는 대단한 것이고, 브라우저의 계산 능력을 활용하여 위치를 계산하므로 필요 없으며 적절하게 정렬 할 수 있습니다. 자신에게 익숙해지면 후회하지 않을 것입니다. – UncaughtTypeError

관련 문제