2010-12-14 10 views
1
나는 다음과 같은 레이아웃

HTML 및 CSS..adding 된 div 측

와 HTML/CSS 레이아웃을 구축 할 필요가

| 정적 사업부 | 내용 Div0을 | 내용 Div1이 | ... | 내용 DivN | 정적에게 Div |

<div id="container"> 
    <div id="static_div_1"></div> 
    <div id="content"> 
     <div id="item1"></div> 
     <div id="item2"></div> 
     .... 
     <div id="itemN"></div> 
    </div> 
    <div id="static_div_2"></div> 
</div> 

요구 사항 :

  1. 모든 된 DIV 서로 옆에 적재 할 필요를 다음과 같이

    내 코드의 축소 버전입니다.

  2. javascript를 사용하여 DIV를 동적으로 DIV에 추가해야합니다.
  3. 정적 DIV는 콘텐츠의 시작과 끝 부분에서 위치를 유지해야합니다.
  4. 내용 DIV 나는 다음과 같은 문제로 고민하고 수평입니다

스크롤해야합니다

  1. 점 후 컨텐츠 사업부가 삽입 된 DIV와는 div 다른 행이 렌더링되기 시작 포장을 시작합니다.

편집 : 일반 데이터처럼 본질적으로 표 형식이 아닙니다. 각 div가 그 자체로 하나의 양식과 같다고 가정합니다. W2처럼 보이는 것. 콘텐츠 DIV에서 스크롤 만하면됩니다. . 내가 정말 GUI 사람 아니에요 악화 문제를하려면 .. :(

어떤 도움이 크게 감사합니다

+1

테이블을 사용하지 않는 구체적인 이유는 무엇입니까? – AniDev

+0

왜이 행동을 기대하지 않습니까? div가 집합 적으로 일정한 너비에 도달하면 배치가 발생합니다.랩핑이 너무 일찍 또는 예기치 않은 시점에 오는 것을 제안 하시겠습니까? –

+1

나는 @AniDev와 동의한다 - 쌓아 올린 Divs는 나란히 복잡하고 까다로운 기동이다. 나는 너무 오래 전에 나 자신과 힘들게 싸워 결국 결국 포기했다. 당신의 예제는 데이터 디스플레이와 비슷하게 들린다. 이것은 테이블이 전통적으로 사용되는 것인데, 심지어 CSS 구동 페이지에서도 그렇다. – morganpdx

답변

3

당신이 필요 CSS 코드하는 것은 이것이다 :

#static_div_1, #static_div_2 { 
    float: left; 
    width: 200px; 
    } 
    #content { 
    float: left; 
    overflow-x: scroll; 
    white-space: nowrap; 
    width: 600px; 
    } 
    #content .item { 
    display: inline-block; 
    *display: inline; /* Target IE6/7 only */ 
    width: 150px; 
    zoom: 1; 
    } 

참고 내가 추가 한 . #content div의 내부의 각 항목에 대한 클래스 "항목"을 스타일이 레이아웃의 키는 다음과 같습니다

  1. 만들기 : 세 부분, #의 static_div_1, #의 static_div_2와 #을 "부동 소수점 왼쪽" 콘텐츠 div (선택적으로 고정 너비).
  2. #content div에 'overflow-x : scroll'스타일이 있습니다.
  3. #content div에 대한 "white-space : nowrap".
  4. #content div의 각 항목에 'display : inline-block'을 설정합니다.

각 항목 사이에 공백이 있음을 알 수 있습니다. 이것은 줄 바꿈 공간이므로이를 피하기 위해 항목 div 사이에 줄 바꿈 또는 공백이 없어야합니다.

이 결과가 도움이되기를 바랍니다. 감사합니다.

업데이트 : 이제 IE6/7에서 작동합니다. 이 브라우저에서 "display : inline-block"을 올바르게 설정하려면 다음 줄을 추가하십시오.

... 
#content .item { 
    ... 
    *display: inline; /* Target IE6/7 only */ 
    ... 
    zoom: 1; 
    } 
+0

+1을 예로 들겠습니다. 내가 어떻게 표시됩니다 : 인라인 블록 및 오버플로 - x를 처리 할 확실하지 않은가요? – skajfes

+0

@skajfes IE6/7에서 "display : inline-block"문제를 해결하기 위해 해킹을 추가했습니다 (IE8은 문제없이 잘 작동합니다). –

+0

감사합니다 Alejandro! – Perpetualcoder