2012-05-04 2 views
1

PreNote : 이것은 중복되지 않습니다. 나는 몇 가지 질문을 점검하고 나의 세부 사항은 다르다.가변 간격의 액체 수평 UL 기반 메뉴

나는 현재 웹 페이지에이 같은 수평 탐색 메뉴가 있습니다 : horizontalMenu

메뉴는 UL 요소입니다. 문제는 현재 li 사이의 간격을 확보하기 위해 명시 적으로 마진을 지정해야한다는 것입니다. 가능한 경우 간격을 60px로 지정하고 브라우저가 축소되어 더 이상 큰 메뉴 간격을 허용하지 않을 때마다 간격을 좁히고 싶습니다.

어떻게하면됩니까?

답변

2

나는 당신이 위버 - 거룩한 우버 그레이 일을 찾고 있다고 생각합니다. 어쩌면 틀렸을 수도 있지만 CSS만으로는 가능하지 않다고 생각합니다. 너비가 최대 인 것처럼 최대 여백 같은 것이 없기 때문입니다. 그리고 JS (예를 들어 jQuery)를 사용하면 JS가 페이지가로드되고 준비 될 때까지 기다렸다가 너비 값을 계산하기 시작해야하기 때문에 일종의 위치 지정 점프가 발생합니다.

조금 다른 점을 기꺼이하고자한다면. 윈도우 크기와 결합 된 전체 네비게이션의 최대 너비를 정의한 다음 최신 브라우저에서 CSS를 사용하는 것이 좋습니다. modernizr.com을 사용하는 경우 IE8 용 CSS로 분기하여 display : table, table-row, table-cell을 대신 사용할 수 있습니다. IE7에서는 float 만 사용합니다.

현대적인 브라우저에서 디스플레이 : 테이블을 사용하지 않는 이유는 무엇입니까? 어쩌면 같은 모양 일지 모르지만 플렉스와 테이블에서 요소 간의 마진 차이가 다릅니다. 플렉스 내의 요소들 사이의 간격이 반드시 동일 (즉, 화소 현명)이지만, 이들은

table 
+--------------------------------+---------+ 
|  wide content in here  | short | 
+--------------------------------+---------+ 
    6px      6px 2px 2px 


flex 
+----------------------------+-------------+ 
| wide content in here | short | 
+----------------------------+-------------+ 
    4px      4px 4px  4px 
+0

Upvoted 디스플레이 '대 (넓은 테이블 셀이 좁은 것보다 더 많은 공간을 확보 의미) 테이블에서 비교적 동일 표 , table-row, table-cell'- 개인적으로 (테이블 자체를 사용하는 것 이외에)이 CSS 속성을 사용하는 것에 대한 실용적인 대안을 볼 수 없습니다. – Mikey

+0

표 : table, table-row 및 table-cell을 텍스트 정렬, 수직 정렬 및 다양한 패딩을 사용하여 원하는 유연성과 레이아웃을 얻을 수 있습니다. 나는 확실히이 구현 방법에 대해 두 번째 도전 과제에 직면하고있다. 일단 시도해보기로 결정했다면 그것은 산들 바람이었다. 그러나,이 방법이 머리글 (일반적으로 단추/입력에 포함 된 텍스트 한 줄로 구성)보다 복잡한 레이아웃에 사용될 수 있는지 확실하지 않습니다. –

+0

너비와 결합 된 최대 너비 : 100 %도 여기에서 매우 효과적으로 사용할 수 있습니다. –