2017-03-22 15 views
0

나는 일반적으로 다음 코드를 사용하여 동적 너비가있는 요소를 가운데에 배치합니다.알 수없는 너비로 가운데 맞추기

.horz-vert-center { 
    position: absolute; 
    left: 50%; 
    top:50%; 
    transform: translate(-50%,-50%); 
} 

문제는 내가 원하는 것보다 빨리 크기를 조정하는 것입니다. 예.

enter image description here

내가 정말 이해가 안 나는 % 값을 사용하고 있다면, 왜 마진이 작아 계속하지 않습니다 메뉴가 아직 하나에 들어갈 수있는 두 줄에 간다? 여기

데모 : https://codepen.io/garethj/pen/LWdaRr

+0

나를 위해 잘 작동 니펫을. –

+0

계속 크기 조절 - 계속하기 전에 접기 – user1059511

+0

'display : inline-flex' 값을 줄 수 있습니까? – zik

답변

0

"시어 도어 K."를 사용하여 그냥 다른 접근 방식을

Demo

.horz-vert-center { 
 
    width:50%; 
 
    margin: auto; 
 
    border: 1px #000 solid; 
 
    text-align: center; 
 
} 
 
.horz-vert-center li{ 
 
    display: inline-block; 
 
    float: none; 
 
} 
 

 
*{margin:0;padding:0;}
<ul class="horz-vert-center"> 
 
    <li>About</li> 
 
    <li>Work</li> 
 
    <li>Blog</li> 
 
    <li>Journal</li> 
 
</ul>

+0

이 작동합니다. 텍스트가 아닌 요소를 다루는 경우에는 작동하지 않습니다. – user1059511

+0

너비가 50 %이기 때문에 이제 요구 사항에 응답합니다 (텍스트는 질문에서 코드를 줄 바꿈하고 질문에서와 같이 세로로 가운데 정렬되지 않습니다 ...) –

1

liuldisplay: inline-block; float: none;white-space:nowrap; 추가 트릭을 할 것으로 보인다.

.horz-vert-center { 
 
    position: absolute; 
 
    left: 50%; 
 
    top: 50%; 
 
    transform: translate(-50%, -50%); 
 
    white-space:nowrap; 
 
} 
 
.horz-vert-center li{ 
 
    display: inline-block; 
 
    float: none; 
 
} 
 

 
body {background:#ccc} 
 
*{margin:0;padding:0;font-family:arial;font-size:20px} 
 
ul {list-style-type:none} 
 
li {float:left;margin-right:10px} 
 
li:last-child {margin-right:0;}
<ul class="horz-vert-center"> 
 
    <li>About</li> 
 
    <li>Work</li> 
 
    <li>Blog</li> 
 
    <li>Journal</li> 
 
</ul>

+0

실례합니다. 텍스트가 아닌 경우 작동하지 않을 것입니다. 5 % 마진을 중심으로 어떻게 센터링합니까? 내 코드는 항상 요소를 50 % 너비로 유지한다고 말하는 것 같군요? 너비 : 50 %를 제거하면 – user1059511