我显然需要将此DIV“两个”高度设置为100% - (减去)另一个DIV高度(div“one”)。问题是,另一个DIV(div“one”)的高度已经是动态的。
所以:
<body>
<div id="one"></div>
<div id="two"></div>
</body>
div { position: relative; }
body { height: 100vh; }
我尝试过这样的事情,但这不起作用:
$(document).ready(exe);
$(window).resize(exe);
function exe(){
var topHeight = $('#one').outerHeight(true);
$('#two').css("height", "calc(100% - topHeight)")
}
或
$(document).ready(exe);
$(window).resize(exe);
function exe(){
var topHeight = $('#one').outerHeight(true);
var topHeightCalc = '100%' - topHeight;
$('#two').css("height", topHeightCalc)
}
答案 0 :(得分:2)
您需要将CSS值中的字符串连接更正为"calc(100% - "+ topHeight +"px)"
$(document).ready(exe);
$(window).resize(exe);
function exe(){
var topHeight = $('#one').outerHeight(true);
$('#two').css("height", "calc(100% - "+ topHeight +"px)")
}
div { position: relative; }
body { height: 100vh; margin:0}
#one {background:#eee}
#two {background:#666}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<body>
<div id="one">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec auctor lobortis aliquet. Fusce sed neque quis eros pulvinar pulvinar quis tincidunt sem. In maximus elementum sagittis. Aliquam erat volutpat. Fusce at sollicitudin dolor. Quisque diam ipsum, porta vel eros sed, pellentesque pellentesque odio. Nunc neque lorem, tincidunt eget quam in, interdum dignissim arcu. Cras dapibus felis in facilisis interdum. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</div>
<div id="two">asdf</div>
</body>
答案 1 :(得分:2)
嘿朋友,你也可以在不使用calc()函数的情况下达到你想要的效果。
这会获得窗口的高度,并从中扣除div #one
的高度,并将该高度应用于div #two
。
$(document).ready(exe);
$(window).resize(exe);
function exe(){
var topHeight = $('#one').outerHeight(true);
var vhHeight = $(window).outerHeight(true);
$('#two').css("height", vhHeight - topHeight + "px");
}
答案 2 :(得分:0)
更多奢侈这样做的方式,如果browser compatibility不是问题,则使用 display:table 。这样您就可以在不使用任何JS的情况下实现所需的效果。
body {
height: 100vh;
}
.container__table {
display: table;
height: 100%;
width: 100%;
}
.container__tr {
display: table-row;
}
.container__td {
display: table-cell;
vertical-align: top;
width: 100%;
}
.container__td#one {
height: 1%;
}
/* Unnecessary style */
body {
margin: 0;
}
p {
font-family: sans-serif;
line-height: 1.25;
}
.container__td {
padding: 15px;
}
#one {
background-color: #bababa;
}
#two {
background-color: #cdcdcd;
}
&#13;
<body>
<div class="container__table">
<div class="container__tr">
<div id="one" class="container__td">
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Architecto molestias excepturi accusantium quidem porro, ut doloremque qui minus dolores, vel voluptate aliquid ipsum laborum ea libero, asperiores sed. Hic nihil itaque maxime error dolorum similique quod, et, deleniti quo quas cupiditate necessitatibus eius dignissimos! Harum praesentium accusamus officia impedit quaerat voluptate minima aut dolore, quibusdam voluptas! Voluptatem similique dignissimos officiis, eligendi repellendus aspernatur, consectetur quam nemo assumenda, nihil doloribus dicta ducimus modi, atque dolorum sequi voluptate ipsam quos blanditiis. Deserunt praesentium dolorem id eius error tempora. Rem ipsam blanditiis, aliquid eos fuga facilis, perspiciatis soluta, distinctio ea sequi, explicabo dolore.<br><br>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Tenetur molestias sint saepe debitis ab aliquid eum harum eligendi, similique perferendis fuga, illum tempore, pariatur nobis tempora reprehenderit eius laboriosam. Doloribus nihil vitae at atque eaque!</p>
</div>
</div>
<div class="container__tr">
<div id="two" class="container__td">
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium ducimus, repudiandae excepturi velit maxime dolore. Esse quis similique fugit eligendi quae sequi numquam et unde adipisci possimus ea eius maxime eveniet, itaque voluptate recusandae magnam ducimus dolorem explicabo mollitia nisi porro asperiores ratione. Libero, sint, sapiente. Pariatur et, repellat iure!<br><br>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Magni harum ullam amet nihil iusto maiores cupiditate cumque alias hic unde!</p>
</div>
</div>
</div>
</body>
&#13;