2017-12-23 10 views
0

이고, 팝업 매우 긴 메뉴 (몸체 길이가 길어질 때)가 높이를 증가시킵니다 바닥 글 다음에 여유 공간이 많이 생깁니다. 문제는이 시점에서 몸체 높이가 문서 높이보다 작다는 것입니다.CSS. 내용이 작고 몸체 높이가 100 % 인 경우, 바닥 글이 창의 아래쪽으로 밀려나는 상황에서 문서 높이와 일치하는 몸체 높이가

방법, 문서의 높이를 따라 몸의 높이를 강제로, CSS를 사용.

body, html { 
 
    height: 100%; 
 
    padding: 0; 
 
    margin: 0; 
 
} 
 
.main { 
 
    border: 1px solid red; 
 
    height: 100%; 
 
} 
 
.ab { 
 
    left: 2em; 
 
    top: 2em; 
 
    right: 10em; 
 
    height: 150vw; 
 
    position: absolute; 
 
    border:1px solid yellow; 
 
}
<div class="main"> 
 
<div class="ab"></div> 
 
</div> 
 
<style> 
 

 
</style>

UPD

Example on jsfiddle

. 은 CSS 솔루션을 찾고 있습니다. 인해 .ab 소자 position: absolute; 데에

$("body").height($(document).height()); 
+0

본문은 문서입니다. 어떤 요소를 몸 높이와 일치시키고 싶습니까? 나는 표기 의 부정확성에 대해 사과 –

+0

은 내가 – MrSwed

+0

당신이 순수 CSS 솔루션을 원하십니까 원하는 걸 알려 드릴 것입니다 jQuery를 시각적 영상과 예를 희망? 또는 일부 JavaScript/jQuery가 허용됩니까? –

답변

0

문제가있다 : JS (jQuery를)에서 은,이 같은 일부를 수행 할 수있다. 이로 인해 요소가 문서 플로우에서 제거되어 문서 높이가 변경되지 않습니다.

이 문제를 해결하기 위해 .ab에서 position: relative으로 변경하지만 일부 다른 HTML/레이아웃 변경이 필요할 수 있습니다.

function addElement() { 
 

 
    document.getElementById("ab").classList.add("show") 
 
}
html, 
 
body { 
 
    height: 100%; 
 
    position: relative; 
 
    padding: 0; 
 
    margin: 0; 
 
} 
 
.main { 
 
    border: 1px solid red; 
 
    min-height: 100%; 
 
    box-sizing: border-box; 
 
} 
 
#ab { 
 
    box-sizing: border-box; 
 
    width: 90vw; 
 
    margin: 30px 5vw; 
 
    height: 150vw; 
 
    position: relative; 
 
    border:1px solid yellow; 
 
    display: none; 
 
} 
 

 
#ab.show { 
 
    display: block; 
 
}
<div class="main"> 
 
<div id="ab"></div> 
 
<button onclick="addElement()">Add tall element</button> 
 
</div> 
 
<style> 
 

 
</style>

+0

예제는 크게 단순화되었으므로 팝업 메뉴를 상대적으로 만들지 않을 것입니다. – MrSwed

+0

네, 그건 여기의 양보 중 하나입니다. 불행히도 유일한 대안은 자바 스크립트를 사용하여 클래스를 body 또는 main 요소에 적용하여 높이를 변경하는 것입니다. 마찬가지로,'.ab' 엘레멘트는'position : absolute; '을 가지고 있는데 엘레멘트의 높이에는 영향을주지 않을 것이다. –

+0

다른 요소의 높이에 영향을주고 싶다면 위치 절대 값을 사용하지 마십시오 – JoshKisb

0

이 주요 사업부의 높이를 증가 스크롤을 제거합니다이 시도하거나 다른 u는 오버 플로우 - y를 제공 할 수 있습니다 : 스크롤을

body, html { 
     height: 100%; 
     padding: 0; 
     margin: 0; 
    } 
    .main { 
    border: 1px solid red; 
    height:100%; 
    overflow-y:scroll; 
    position:relative; 
} 
.ab { 
    left: 2em; 
    top: 2em; 
    right: 10em; 
    height: 150vw; 
    position: absolute; 
    border:1px solid yellow; 
} 
<div class="main"> 
<div class="ab"></div> 
</div> 
<style> 

</style> 
+0

당신이 필요로하는 것처럼 보입니다 ... 동적 인 팝업 메뉴에서 프로젝트를 체크합니다. 그것은 https://jsfiddle.net/swed/ckzwsLcn/9/에서 작동합니다 – MrSwed

+0

아뇨 .. 실수로 숨겨진! 당신이로 뜻 어떤 방식으로 – MrSwed

+0

확인 그래 ...이 "당신이 필요로하는 것 같다 .." –

관련 문제