CSS div 높이를 100% 마이너스 nPx로 설정하는 방법
저는 옆에 2개의 디브가 들어있는 포장지 디브가 있습니다.이 컨테이너 위에 머리말이 들어있는 디브가 있습니다.래퍼 div는 헤더의 높이에서 100%를 뺀 값이어야 합니다.헤더는 60px 정도 됩니다.이거 고쳤어요.그래서 제 질문은 어떻게 하면 제 래퍼 디브의 높이를 100%에서 60px를 뺀 값으로 설정할 수 있을까요?
<div id="header"></div>
<div id="wrapper">
<div id="left"></div>
<div id="right"></div>
</div>
CSS3에서 사용할 수 있습니다.
height: calc(100% - 60px);
여기 Firefox/IE7/Safari/Chrome/Opera에서 테스트된 작동하는 CSS가 있습니다.
* {margin:0px;padding:0px;overflow:hidden}
div {position:absolute}
div#header {top:0px;left:0px;right:0px;height:60px}
div#wrapper {top:60px;left:0px;right:0px;bottom:0px;}
div#left {top:0px;bottom:0px;left:0px;width:50%;overflow-y:auto}
div#right {top:0px;bottom:0px;right:0px;width:50%;overflow-y:auto}
"overflow-y"는 w3c 인증을 받지는 않지만, 모든 주요 브라우저가 이를 지원합니다.두 디브 #left와 #right는 내용물이 너무 높으면 세로 스크롤 막대를 표시합니다.
IE7에서 작동하려면 DOCTYPE을 추가하여 표준 준수 모드를 트리거해야 합니다.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title></title>
<style type="text/css">
*{margin:0px;padding:0px;overflow:hidden}
div{position:absolute}
div#header{top:0px;left:0px;right:0px;height:60px}
div#wrapper{top:60px;left:0px;right:0px;bottom:0px;}
div#left{top:0px;bottom:0px;left:0px;width:50%;overflow-y:auto}
div#right{top:0px;bottom:0px;right:0px;width:50%;overflow-y:auto}
</style>
</head>
<body>
<div id="header"></div>
<div id="wrapper">
<div id="left"><div style="height:1000px">high content</div></div>
<div id="right"></div>
</div>
</body>
IE6를 지원해야 하는 경우에는 자바스크립트를 사용하여 래퍼 div의 크기를 관리합니다(창 크기를 읽은 후 요소의 위치를 픽셀 단위로 설정).자바스크립트를 사용하지 않으려면 이 작업을 수행할 수 없습니다.해결 방법이 있지만 1~2주일 정도면 모든 경우와 모든 브라우저에서 작동할 수 있을 것으로 예상됩니다.
다른 최신 브라우저의 경우 다음 CSS를 사용합니다.
position: absolute;
top: 60px;
bottom: 0px;
div {
height: 100%;
height: -webkit-calc(100% - 60px);
height: -moz-calc(100% - 60px);
height: calc(100% - 60px);
}
적게 사용하면서 확인합니다.
height: ~calc(100% - 60px);
그렇지 않으면 less는 정확하게 컴파일하지 못합니다.
멋진 녀석...이제 %를 사용하지 않게 되었습니다 히히히히히히히히히히...다음과 같은 주 컨테이너를 제외합니다.
<div id="divContainer">
<div id="divHeader">
</div>
<div id="divContentArea">
<div id="divContentLeft">
</div>
<div id="divContentRight">
</div>
</div>
<div id="divFooter">
</div>
</div>
여기 CSS가 있습니다.
#divContainer {
width: 100%;
height: 100%;
}
#divHeader {
position: absolute;
left: 0px;
top: 0px;
right: 0px;
height: 28px;
}
#divContentArea {
position: absolute;
left: 0px;
top: 30px;
right: 0px;
bottom: 30px;
}
#divContentLeft {
position: absolute;
top: 0px;
left: 0px;
width: 250px;
bottom: 0px;
}
#divContentRight {
position: absolute;
top: 0px;
left: 254px;
right: 0px;
bottom: 0px;
}
#divFooter {
position: absolute;
height: 28px;
left: 0px;
bottom: 0px;
right: 0px;
}
나는 이것을 모든 알려진 브라우저에서 테스트했고 잘 작동하고 있습니다.이런 식으로 사용하면 단점이 있습니까?
높이: Calc(100% - nPx), 높이: Calc(100% - nPx), 예를 들어 높이: Calc(100% - 70px),
이것은 질문에 정확히 대답하지는 않지만, 여러분이 달성하려고 하는 것과 같은 시각적 효과를 만들어냅니다.
<style>
body {
border:0;
padding:0;
margin:0;
padding-top:60px;
}
#header {
position:absolute;
top:0;
height:60px;
width:100%;
}
#wrapper {
height:100%;
width:100%;
}
</style>
이 예제에서는 여러 영역을 식별할 수 있습니다.
<html>
<style>
#divContainer {
width: 100%;
height: 100%;
}
#divHeader {
position: absolute;
left: 0px;
top: 0px;
right: 0px;
height: 28px;
background-color:blue;
}
#divContentArea {
position: absolute;
left: 0px;
top: 30px;
right: 0px;
bottom: 30px;
}
#divContentLeft {
position: absolute;
top: 0px;
left: 0px;
width: 200px;
bottom: 0px;
background-color:red;
}
#divContentCenter {
position: absolute;
top: 0px;
left: 200px;
bottom: 0px;
right:200px;
background-color:yellow;
}
#divContentRight {
position: absolute;
top: 0px;
right: 0px;
bottom: 0px;
width:200px;
background-color:red;
}
#divFooter {
position: absolute;
height: 28px;
left: 0px;
bottom: 0px;
right: 0px;
background-color:blue;
}
</style>
<body >
<div id="divContainer">
<div id="divHeader"> top
</div>
<div id="divContentArea">
<div id="divContentLeft">left
</div>
<div id="divContentCenter">center
</div>
<div id="divContentRight">right
</div>
</div>
<div id="divFooter">bottom
</div>
</div>
</body>
</html>
이런 글은 아직 본 적이 없지만, 저는 그것을 밖에 내놓아야겠다고 생각했습니다.
<div class="main">
<header>Header</header>
<div class="content">Content</div>
그러면 CSS:
body, html {
height: 100%;
margin: 0;
padding: 0;
}
.main {
height: 100%;
padding-top: 50px;
box-sizing: border-box;
}
header {
height: 50px;
margin-top: -50px;
width: 100%;
background-color: #5078a5;
}
.content {
height: 100%;
background-color: #999999;
}
여기 일하는 jsfiddle이 있습니다.
참고: 이것에 대한 브라우저 호환성이 무엇인지 전혀 모르겠습니다.대체 솔루션을 가지고 놀고 있었는데 잘 작동하는 것 같았습니다.
외부 포장지 디브를 100%로 설정한 다음 내부 포장지 디브를 100%로 설정합니다.
나는 이것이 나에게 효과가 있다고 확실히 생각했지만, 분명히 그렇지 않습니다.
<html>
<body>
<div id="outerwrapper" style="border : 1px solid red ; height : 100%">
<div id="header" style="border : 1px solid blue ; height : 60px"></div>
<div id="wrapper" style="border : 1px solid green ; height : 100% ; overflow : scroll ;">
<div id="left" style="height : 100% ; width : 50% ; overflow : scroll; float : left ; clear : left ;">Some text
on the left</div>
<div id="right" style="height : 100% ; width 50% ; overflow : scroll; float : left ;">Some Text on the
right</div>
</div>
</div>
</body>
</html>
절대 위치 지정과 재즈를 사용하고 싶지 않다면, 여기에 제가 사용하고 싶은 수정사항이 있습니다.
html:
<body>
<div id="header"></div>
<div id="wrapper"></div>
</body>
당신의 CSS:
body {
height:100%;
padding-top:60px;
}
#header {
margin-top:60px;
height:60px;
}
#wrapper {
height:100%;
}
언급URL : https://stackoverflow.com/questions/1192783/css-how-to-set-div-height-100-minus-npx
'IT' 카테고리의 다른 글
모바일 기기의 배경 이미지에 재생 버튼이 나타납니다. (0) | 2023.11.04 |
---|---|
다음을 통해 $(이것)을 제외한 모든 항목 숨기기:jQuery 선택기에 없음 (0) | 2023.11.04 |
오라클에서 xmltable을 사용하는 방법? (0) | 2023.11.04 |
Oracle SQL Analytic 쿼리 - 재귀적 스프레드시트와 같은 실행 합계 (0) | 2023.11.04 |
div 요소에서 크기 조정 (0) | 2023.11.04 |