2012-08-25 1 views
0

나는 이것을 오랫동안 그리고 너무 초조하게 작동시키는 나의 저주받은 레이아웃을 얻으려고 노력해왔다. 나는 CSS에 익숙하지 않으므로 제발 쉬워 라. 그러나 나는 끈적한 꼬리말과 스트레칭 내용, 기타 등등에 관한 많은 기사를 보았고 나는 아직도 그것을 얻을 수 없다. 최소 신장은 저를 위해 아무것도하지 않습니다! 여기 페이지 내용을 늘려 페이지 하단으로 꼬리말을 붙이려면 어떻게해야합니까?

Here is what i want my site to look like when it doesn't have enough content to fill a page.

And this is what i want it to look like when the content makes you scroll.

는 HTML 코드입니다 :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>Welcome to SilmanServer!</title> 
<link href="./main.css" rel="stylesheet" type="text/css" /> 

</head> 

<body> 

<div id="pageHeader"> 
<h1>SilmanServer</h1> 
<p>Aaron Silman's Personal Home Server </p> 
</div> 

<div id="navigation"> 
    <ul> 
     <li><a href="./index.html">Home</a></li> 
     <li><a href="./blog.html">Blog</a></li> 
     <li><a href="./projects.html">Projects</a></li> 
     <li><a href="./about.html">About Me</a></li> 
     <li><a href="./contact.html">Contact</a></li> 
    </ul> 
</div> 


<div id="main"> 

<div> 
<h2>What the hell?</h2> 
    <p> 
    This the project I embarked on around June of 2012 with an old computer that I had at home. My goal: To transform that old, useless HP Pavilion a6750y into a fully functioning webserver for this website! Along the way I also learned (X)HTML, CSS, Javascript, PHP, MySQL and a bunch of other things needed for designing and developing websites, as well as administrating my own server. 
    </p> 
</div> 

<div> 
<h2> Why? </h2> 
    <p> As mentioned before, I really wanted to learn how to build websites that function both on the client side and server side. I wanted to just play around and learn. So I started learning, beginning with the basics. I will also use this website as documentation, tracking my progress and noting a lot of important steps so if anyone (including myself - in case I forget) wants a guide to setting up a server and learning web design and development they an refer to <a href="./guide_to_the_web.html">this page </a> for a complete, idiot-proof, guide to the web from scratch. 
    </p> 
</div> 

</div> 

<div id="pageFooter"> 
    <p> This is a footer 
    </p> 
</div> 

</div> 
</body> 
</html> 

여기에 CSS는 다음과 같습니다

/* Eric Meyer's Reset CSS v2.0 - http://cssreset.com */ 
html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{border:0;font-size:100%;font:inherit;vertical-align:baseline;margin:0;padding:0}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}body{line-height:1}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:before,blockquote:after,q:before,q:after{content:none}table{border-collapse:collapse;border-spacing:0} 

/* Global Styles */ 

html{ 
    background: url(./images/sway.jpg); 
    background-attachment: fixed; 
    background-repeat::no-repeat; 
} 

body { 
    width: 80%; 
    margin: 0 auto; 
} 
/* pageHeader Styles */ 

#pageHeader{ 
    height: 100px; 
    background:#999; 
} 

#pageHeader h1 { 
    padding-left: 30px; 
    font-family:Arial, Helvetica, sans-serif; 
    font-size: 3.5em; 
    color:#F93; 
} 

#pageHeader p{ 
    padding-left: 40px; 
    font-family: "Times New Roman", Times, serif; 
    font-size: 2em; 
    color: white; 
} 

/* navigation Styles */ 

#navigation{ 
    float:left; 
    width:100%; 
    background: #0CF; 
    overflow: hidden; 
    position: relative; 
} 

#navigation ul{ 

} 

#navigation li{ 
    float: left; 
    margin: 0 20px; 
    font-size: 1.5em; 
} 

#navigation li a:link {color:#F60;} /* unvisited link */ 
#navigation li a:visited {color:##89ABFC;} /* visited link */ 
#navigation li a:hover {color:#3FF;} /* mouse over link */ 
#navigation li a:active {color:#009;} /* selected link */ 

/* main Styles */ 

#main{ 
    width: 80%; 
    margin: 0 auto; 
    border: 2px solid black; 
    background: #999; 
    color: #FFF; 
} 

/* pageFooter Styles */ 

#pageFooter{ 
    height: 100px; 
    background:#999; 
} 

#pageFooter h1 { 
    padding-left: 30px; 
    font-family:Arial, Helvetica, sans-serif; 
    font-size: 3.5em; 
    color:#F93; 
} 

#pageFooter p{ 
    font-family: "Times New Roman", Times, serif; 
    font-size: 2em; 
    color: white; 
} 

내가이 효과를 달성하기 위해 무엇을 할 수 있는가?

+1

안녕하세요! 사람들이 당신을 도우려는 경우, 코드를 붙여야하는 경우, 잘못된 언어, 너무 긴 코드 조각 및 서식없는 코드는 피하십시오. 더 나은 방법은 온라인 샌드 박스에 대한 링크를 제공하거나 http://pastebin.me/ 또는 http://jsfiddle.net/ 또는 http://jsbin.com/ 또는 barebones 예제를 설정하는 것입니다. – Systembolaget

답변

8

찾고있는 것은 "끈끈한 바닥 글"입니다.

  • 오래된 CSS 전용 방법은 바닥 글의 정확한 높이를 알아야합니다. 빠른 Google 검색을 통해 찾을 수 있었던 최상의 솔루션은 Ryan Fait's Sticky Footer입니다. Ryan의 튜토리얼은 래퍼 요소 (바닥 글을 제외한 콘텐츠가 포함되어 있음)에 100 % 높이를 두어 작동합니다. 이 100 % 높이로 내용이 창의 맨 아래로 푸터를 푸시 한 다음 음수 여백을 사용하여 푸터가 다시 가시 영역으로 돌아옵니다 (이것이 바로 바닥 글의 높이를 알아야하는 이유입니다 ...). 음수 여백은 바닥 글 요소와 동일한 높이 여야합니다). 모든 브라우저 (예 : <div class="push"></div>)에서 안정적으로 작동하도록하려면 몇 가지 추가 항목이 있지만 기본적으로 그런 일이 발생합니다.

  • 최신 CSS 전용 솔루션은 display: table; (IE7에서는 지원되지 않음)을 사용해야하지만 가변 높이 바닥 글을 허용합니다 (Sticky CSS footers: The flexible way 참조). 이것은 아마도 제가 추천할만한 방법 일 것입니다.

두 번째 기사의 저자는 Javascript가 IE7 지원을 추가하는 데 사용될 수 있지만 실제 Javascript를 작성하지는 못한다고 언급했습니다. 이 대답 당시 StatCounter은 IE7이 약 1.28 %의 시장 침투력을 가진 것으로 나타냅니다. IE7 지원이 중요한지 여부를 결정하기 위해 남겨 두겠다. $ 0.02를 추가하고 싶다면 다음과 같이하면된다 :-p 첫째, IE7의 모든 사용자는 IE8 로의 업그레이드 경로를 가지고 있으며, 업데이트를 거부하는 사용자는 웹 개발자는 IE7에서 IE8로 많은 CSS2 셀렉터의 가능성을 열어 줄뿐만 아니라 많은 유동적 인 문제를 해결하고 display: table;을 만들 수 있습니다. 웹 개발자의 삶을 열심히 만드는 것 외에도 컴퓨터를 해킹 할 수있는 수많은 브라우저 해킹에 대해 스스로 개방되어 있기 때문에 좀비 군대를 확장하려는 해커가 쉽게 찾을 수 있습니다 (security more difficult for everyone else). 둘째, Do websites need to look exactly the same in every browser? (물론 대답은 "아니오"입니다.) 브라우저 창의 아래쪽에 바닥 글이있는 것이 점진적 향상으로 간주 될 수 있다면 걱정할 필요가 없습니다.

IE7에서 작동하도록 코드가 업데이트되었습니다. : -p jsfiddle을보고 어떻게 작동하는지 알려주세요.

+0

Ryan의 자습서가 단순히 특정 픽셀만큼 바닥 글을 누르는 것이 아닌가요? 나는 이것을 매우 편리하거나 견고하다고 보지 않는다. 바닥 글이 얼마나 낮아야하는지 모르는 경우 두 번째 자습서를 사용할 수 있습니까? 나는 자바 스크립트를 잘 알고 있으며, 원하는대로 내 레이아웃을 갖는다면 더 배우기를 원한다. – SudoSilman

+0

필자는 Ryan의 코드에 대한 설명으로 답변을 업데이트했으며,'display : table;'메소드에 대한 나의 권고를 자세히 설명했습니다. 또한 Javascript를 추가하여 표시 값을 지원하지 않는 브라우저에서'display : table;'메소드가 작동하도록했습니다. – thirdender

+0

정말 고마워요! 나는 확실히 이것을 들여다보고 그것을 작동 시키려고 노력할 것입니다! – SudoSilman

-1

사용 CSS 위치 : 고정

이 링크에서 자세한 정보를 확인할 수 있습니다. http://www.w3schools.com/cssref/pr_class_position.asp

+0

마치이 레이아웃을 여러 페이지에 적용 할 수없는 것처럼 느껴집니다. 화면 높이보다 더 많은 콘텐츠가 포함 된 페이지를 만들면 어떻게됩니까? 꼬리말을 콘텐츠 블록 바로 다음으로 밀어 내고 싶습니다. – SudoSilman

+0

그래서 바닥 글을 화면이 아닌 페이지 하단에 놓기를 원합니다. 그렇다면 position : absolute를 사용할 수 있습니다. 하단 : 0 픽셀; . 검은 공간은 내용이 화면보다 작을 때 min-height – user1494855

+0

Sorta를 사용할 수 있습니다. Sorta는 페이지 내용이 페이지 높이보다 긴 경우 페이지 하단에 표시하고 싶습니다. 페이지 콘텐츠가 전체 페이지를 차지하지 않으면 콘텐츠 상자가 늘어나서 바닥 글이 화면 하단에 깔끔하게 배치됩니다. – SudoSilman