2011-09-17 6 views
6

컨텐츠가 뷰포트보다 짧을 때 컨텐츠 하단이 페이지 아래쪽으로 확장되도록하려면 컨텐츠 열이 필요하지만 내용이 더 길 때도 ​​확장해야합니다. 이 열은 페이지 상단에서 약간 아래로 내려와야합니다. 여기 열을 항상 페이지 맨 아래로 늘리려면 어떻게합니까?

내가 설명 무엇을위한 HTML입니다 : 여기
<html> 
    <body> 
    <div id="content"> 
     <p> asdf ghjkl </p> 
    </div> 
    </body> 
</html> 

는 CSS를이다

#content { 
    min-height: 100%; 
    margin: 100px 0 0; 
} 

이 방법의 문제는 있지만 페이지가 그래서 min-height: 100%; 계정에 패딩을하지 않는다는 것입니다 항상 내가 원하는 것보다 큽니다.

desiredbehavior

자바 스크립트를 사용하지 않고이 작업을 수행 할 수있는 방법이 있나요 :

이 내가 추구하고있는 행동은 무엇입니까?

+0

http://nerdhow.net/ (앞 페이지)에있는 예제가 있습니다. # contentcolumn은 # wrapper이고, .region-content는 #contact입니다. – enthdegree

+0

이미지를 통해 내가 원하는 것을 더 잘 보여줍니다. – enthdegree

+0

최소 높이 사용을 고려 했습니까? 내부 콘텐츠에 상관없이 콘텐츠 div의 최소 높이를 설정할 수 있습니다. 그런 다음 필요에 맞게 확장됩니다. – Paragon

답변

3

절대 위치는 당신을 위해이 작업을 수행 할 수 있습니다

첫째는 min-heightmargin는 다음 CSS에이 규칙을 적용 제거합니다.

#content { 
    position: absolute; 
    top: 100px; 
    bottom: 0; 
} 
0

절대 위치 지정을 사용하고 추가 블록을 추가하여 얻을 수 있습니다 (단색 배경이 필요한 경우). 조금 컨텐츠를해야 할 때

1

, 당신은 당신이 대신 지정된 폭과 높이의 상자를 렌더링 할 브라우저를 강제 할 수 border-box로 설정하여 box-sizing

를 사용하고 테두리와 패딩을 추가 할 수 있습니다 안에 상자가 있습니다.

+0

고마워! 나는 이것에 대해 알지 못했고 문제를 해결하는 데 도움이되었습니다. – enthdegree

1

녀석과 새들, 여기에 내가 한 일이 있습니다. 직접 문제를 해결하는 대신 몇 가지 fixer div를 추가했습니다.

우선, 여기에 몇 가지 관찰은 다음과 같습니다

  1. 우리는 #column이 더 뷰포트보다 때, #column 요구의 길이가 <body>의 높이를 지정하는 것을 알고있다.

  2. #column이 뷰포트보다 짧은 경우 뷰포트의 높이가 <body> 인 높이를 지정해야합니다.

  3. 콘텐츠의 길이에 관계없이 모든 상황에서 열이 페이지 아래쪽으로 늘어나야합니다. 우리가 height: auto<body>에 설정되어 있는지 확인해야 할 첫 번째 기준에 대한

. Height 설정되어 있지 않은 경우이를 무시합니다. 또한 #columnheight: auto;overflow: hidden;이 있는지 확인하여 콘텐츠의 크기가 확장되도록해야합니다.

position: absolute;min-height: 100%;<body>에 설정해야합니다. <body>의 길이는 #column보다 길지만 뷰포트보다 짧지는 않지만 확장됩니다. 이 다음 부분은 수정이 들어오는 부분입니다.

세 번째 기준에서 트릭은 추가 div를 추가하고 몇 가지 특별한 CSS를 제공하는 것입니다. 내 HTML에서는 #column 외부에서 두 div를 바로 추가했습니다. 외부의 div

<div id="colhack-outer"> 
    <div id="colhack-inner"> 
    </div> 
</div> 
<div id="column"> 
    ... 
</div> 

당신은 그것을 절대적으로 postiion 및 대체 상자 모델을 사용하고 패딩을 사용하여 콘텐츠 영역의 이동하도록 강요, 그것은 100 % 높이의 설정. 모든 열 스타일 (배경색, 테두리 반지름, 그림자 등)을 내부 div에 적용합니다.

#contentbox { 
    position: relative; 
    padding: <where you want to shift the column to>; 
    width: 50%; 
    color: #EEEEEC; 
    -moz-box-sizing: border-box; 
    -webkit-box-sizing: border-box; 
    box-sizing: border-box; 
} 

라이브 예 여기 : http://nerdhow.net/

을 또한 실제 콘텐츠 컨테이너는 특별한 상자 모델을 사용하고 너무 패딩을 이동해야

#colhack-outer { 
    height: 100%; 
    padding: <where you want to shift the column to>; 
    position: absolute; 
    width: 50%; 
} 
#colhack-inner { 
    height: 100%; 
    width: 100%; 
    background-color: #303030; 
} 

: 여기에 내가 그들에게 적용되는 CSS입니다

질문이 있거나 명확하지 않은 경우 의견을 게시하십시오.

+0

감사합니다 ... 내부 div의 배경을 설정하면 문제가 해결되었습니다. – Martin

관련 문제