2012-03-26 4 views
1

나는 수평 탐색 메뉴를 만들고 있어요 정렬하고, 내가 CSS를 사용하여 div의 내부에 수직으로 앵커를 중심 싶어, 내가 가진 것은 이것이다 높이 (a, li 및 ul)가 15이고, 내 UL 높이가 45이므로 li가 ... 앵커 높이가 설정되어 있지 않습니다. 어떻게 수직으로 중심을 잡을 수 있습니까? 당신이 수직으로 리튬의 내에서 정렬 된 앵커를 원하는 뜻 가정 그런데CSS 위치 앵커가 수직

ul.dropdown { 
    font: bold 12px tt0142m, FuturaM, "Trebuchet MS", sans-serif; 
    text-transform: uppercase; 
    display: block; 
    height: 45px; 
    padding: 0px; 
    line-height: 15px; 
    vertical-align: bottom; 
/* border: 1px solid green; */ 
} 
ul.dropdown li { 
    padding: 0px; 
    margin: 0px; 
} 
ul.dropdown a { 
    text-decoration: none; 
    vertical-align: middle; 
    color: #000; 
} 

ul.dropdown li { 
    word-wrap: break-word; 
    width: 120px; 
    text-align: center; 
    font: FuturaM; 
    border-left: 2px solid #000; 
    line-height: 15px; 
    height: 45px; 
} 
ul.dropdown > li:last-child { 
    border-right: 2px solid black; 
} 
ul.dropdown li a { 
    display: block; 
    position: relative; 
    text-align: center; 
    vertical-align: middle; 
    color: #000; 
    font-weight: bold; 
} 

, 지금 모든 링크가 수직으로 상단

답변

2

한가지 방법은 테이블 표시 방식을 변경하고 요소의 높이를 강제로

,
ul.dropdown li { 
display: table; 
min-height: 45px; 
} 
ul.dropdown li a { 
display: table-cell; 
height: 45px; 
vertical-align: middle; 
} 

과 같이 그 일에 대한 문제는 IE7과 IE6은

ul.dropdown li { 
position: relative; 
display: block; 
} 
ul.dropdown li a { 
position: absolute; 
top: 50%; 
display: block; 
} 
ul.dropdown li a <new extra element that you do not yet have> { 
position: relative; 
top: -50%; 
} 
+0

완벽 해, 잘되고있어, 내 문제를 해결 했어! – Tales

0

에 정렬 .. :

이 내 CSS입니다 .

ul.dropdown li { 
posiiton:relative; 
} 
ul.dropdown li a { 
height:25px; /* change as needed */ 
position:absolute; 
top:10px; /* change as needed */ 
} 
+0

작동하지 않습니다. 적어도 예상 한대로 작동하지 않습니다. 제 생각은 리에있는 모든 내용을 세로로 가운데 맞추는 것입니다. 이 텍스트 중 일부는 3 행, 2 행 및 일부 1 행을 사용합니다. 아이디어는 모두 상단과 하단에 같은 공간을 가지고 있습니다 (3 라이너 0, 2 라이너 7, 3 라이너 15 기본적으로 중심에 위치). – Tales

+0

다음 테이블. 또는 표 셀로 블록을 표시 할 수 있습니다. –

1

가장 좋은 방법은 lidisplay: table-cell;을 확인하는 것입니다 특별한 스타일을 필요로한다는 것입니다. 표 요소는 현재 중간에 콘텐츠를 수직 정렬 할 수있는 유일한 가사입니다 (적절한 지원 범위 내)

여기에 a jsfiddle that demonstrates this입니다. display: table-cell은 IE7에서 지원되지 않지만 IE7에서 지원하지 않는 :last-child을 사용하면 문제가 있다고 생각하지 않습니다.

+0

안녕하세요, 답변을 주셔서 감사합니다 또한 링크에 대한 감사, 나는 그 사이트에 대해 몰랐다. 당신이하는 말을하려고 노력할 것입니다. 나는 당신의 대답이 Dennis와 비슷하다고 생각하지만 그는 li (display : table; } 만드는 동안 a {display : table-cell; } – Tales

+0

아, 네 조금 더 작동하지만 기본적으로 같은, 테이블 요소 만들기. – sg3s