2016-07-09 4 views
2

을 지정하므로 부트 스트랩으로 멋진 방문 페이지를 만들려고합니다.div 높이 (부트 스트랩)

템플릿에는 고정 된 navbar와 끈적 끈적한 footer가 포함되어 있습니다. 페이지의 나머지 부분은 기본적으로 거대한 배경으로 채우고 싶은 whtespace입니다. 그래서 테스트 단락 요소를 넣어 크기를 조정하는 방법을 살펴 보겠습니다. 나는 몸의 높이를 100 %로 만든 CSS 규칙을 추가 할 수 있다고 생각했지만, 그렇게하면 오버플로가 발생하고 내 꼬리말은 페이지 하단에 더 이상 나타나지 않습니다. 대신 배경의 작은 넘침이 바닥에 있습니다.

어떻게 해결할 수 있습니까? 나는 배경색을 밝은 노란색으로 만들어 내 뜻을 보여 주려고합니다. 어떤 도움을 주셔서 감사합니다!

다음은 HTML

<!DOCTYPE html> 
<html lang="en"> 
<head> 
<meta charset="utf-8"> 
<meta http-equiv="X-UA-Compatible" content="IE=edge"> 
<meta name="viewport" content="width=device-width, initial-scale=1"> 
<!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags --> 
<title>Work in Progress</title> 
</head> 

<body> 
<!--navbar--> 
<nav class="navbar navbar-inverse navbar-fixed-top"> 
<div class="container"> 
    <div class="navbar-header"> 
     <button type="button" class="navbar-toggle collapsed" 
       data-toggle="collapse" data-target="#navbar" 
       aria-expanded="false" aria-controls="navbar"> 
     <span class="sr-only">Toggle navigation</span> 
     <span class="icon-bar"></span> 
     <span class="icon-bar"></span> 
     <span class="icon-bar"></span> 
     </button> 
     <a class="navbar-brand" href="#">Portfolio</a> 
    </div> 
    <div id="navbar" class="navbar-collapse collapse" 
       aria-expanded="false" style="height: 1px;"> 
     <ul class="nav navbar-nav"> 
     <li><a href="#about">About</a></li> 
     <li><a href="#contact">Contact</a></li> 
     <li class="dropdown"> 
      <a href="#" class="dropdown-toggle" data-toggle="dropdown" 
      role="button" aria-haspopup="true" 
      aria-expanded="false">Projects 
      <span class="caret"></span></a> 
      <ul class="dropdown-menu"> 
      <li><a href="#">Rails Projects</a></li> 
      <li><a href="#">LAMP Projects</a></li> 
      </ul> 
     </ul> 
    </div> 
</div>  
</nav> 


<div class="main"> 
<div class="container"> 
<p>Test text</p> 
</div> 
</div> 



<!--footer--> 
<footer class="footer"> 
<div class="container"> 
    <div class="row"> 
    <div class="col-md-4"> 
    <p>Contact info or whatever goes here.</p> 
    </div> 
    <div class="col-md-4 col-md-offset-4"> 
    <p>More info or whatever goes here.</p> 
    </div> 
    </div> 
</div> 
</footer> 


</body> 
</html> 

입니다 그리고 여기 당신이 CSS (몸에 position: relative 값과 계산 기능 (바닥 글의 100 %의 마이너스 높이)로 .main 높이를 사용할 수 있습니다

html, body{ 
height: 100% 
} 

.main{ 
height: 100%; 
background-color: #FFFF00; 
margin-top: 50px; 
} 

.footer{ 
position: absolute; 
bottom: 0; 
width: 100%; 
height: 60px; 
background-color: #000; 
color: #9d9d9d; 
} 

답변

1

는 CSS를이다 :

html, 
body { 
    height: 100%; 
    position: relative; 
} 
.main { 
    height: calc(100% - 60px); 
    background-color: #FFFF00; 
    padding-top: 50px; 
} 
.footer { 
    position: absolute; 
    bottom: 0; 
    width: 100%; 
    height: 60px; 
    background-color: #000; 
    color: #9d9d9d; 
} 
+0

그래서이 코드를 사용해 보았습니다. 더 이상 하단에 공백이 없지만 하단의 바닥 글을 보려는 사용자에게 스크롤 막대를 사용하도록 강요합니다. – ricksanchez

+0

코드를 갱신하고,'margin-top' 대신'padding-top'을 사용하십시오. – makshh

+1

당신의 생각과 위의 생각을 결합하여 작동하게하십시오. 너는 높이에서 바닥 글을 뺀 것이어야한다고 올바르게 지적했다. 고마워요! – ricksanchez

0

데모 : https://fiddle.jshell.net/uvaef49h/1/

다음과 같은 CSS 사용할

:

html, body{ 
height: 100%; 
padding: 0; 
margin: 0; 
} 

.main{ 
height: calc(100% - 110px); 
background-color: #FFFF00; 
margin-top: 50px; 
} 

.footer{ 
position: absolute; 
bottom: 0; 
width: 100%; 
height: 60px; 
background-color: #000; 
color: #9d9d9d; 
overflow: hidden; 
} 

왜 이전에 작동하지 않았다을?

시체의 높이가 X이며, 주 몸집이 100 %입니다. 그러나 메인은 50px 마진만큼 밀렸다. .main 부분 다음에 뷰어 포트에서 완전 푸시 된 바닥 글을 가지고 있으므로 다른 60px.main 높이에서 제거해야했습니다. 바닥 글에 오버플로 문제가있어 숨겼습니다.

마지막으로 브라우저에서 임의의 여백/패딩을 추가하여 제거했습니다.

+0

이 코드를 사용해 보았습니다. 저를 위해 일어난 모두는 여분 공간이 바닥에 황색 대신에 백색에 어울렸다이었다. – ricksanchez

+0

그래, calc를 -110px 대신에 -60px로 변경하면 이제 작동합니다. 고마워요! – ricksanchez

+0

@ricksanchez 도움이 되었으면이 대답을 수락하십시오. –

관련 문제