将变量传递给jQuery CSS值来​​计算高度

我显然需要将此DIV“两个”高度设置为100% – (减去)另一个DIV高度(div“one”)。 问题是,另一个DIV(div“one”)的高度已经是动态的。

所以:

 
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) } 

嘿朋友你也可以在不使用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"); } 

您需要将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} 
   
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.
asdf

如果浏览器兼容性不是问题,更奢侈的方法是使用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; } 
  

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.

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!

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!

Lorem ipsum dolor sit amet, consectetur adipisicing elit. Magni harum ullam amet nihil iusto maiores cupiditate cumque alias hic unde!

Interesting Posts