JQuery-ui手风琴在填充模式和溢出 - 无关的2px

时间:2016-12-29 10:45:55

标签: jquery css jquery-ui jquery-ui-accordion

this fiddle PoC中,如果我想摆脱溢出的垂直滚动条,我需要通过两个额外的无法解释的像素来降低我的JQuery-ui手风琴的高度。

  • 我处于'fill' heightStyle模式,如下所示。
  • 我的手风琴的高度是身体的高度减去页脚和标题的高度。 减去2像素
  • 所有的库都是最新版本(在撰写本文时),除了jquery不在' 3'。
  • 我知道accordion.refresh()和css flex,但我对"为什么"感到好奇,而我更倾向于使用calc()而不是在我之前用弹性框填充我的CSS。



$( function() {
    $( "#accordion" ).accordion({heightStyle: 'fill' });
  } );

html, body {
    height: 100%;
  }
  :root{
    --header-height: 40px;
    --footer-height: 40px;
    --two-unexplained-px: 2px;
  }
  body {
    overflow:auto;
    background-color: red;
  }
  * {
    margin: 0px;
    padding: 0px;
  }
  #header, #footer {
    background-color: #adf;
  }
  #header {
    height: var(--header-height);
  }
  #footer {
    height: var(--footer-height);
  }
  #accordion {
    height: calc(100% - var(--header-height) - var(--footer-height) - var(--two-unexplained-px));
  }

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.css" rel="stylesheet"/>
<div id="header">Header here</div>
 <div id="accordion"><h2><a>Work here</a></h2><div>Text Here</div></div>
 <div id="footer">Footer here</div>
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分:1)

另外两个像素来自此规则:

.ui-accordion .ui-accordion-header {
    margin: 2px 0 0 0;
}