css:margin-top导致滚动条

时间:2016-07-30 17:40:57

标签: html css

exception 'BadMethodCallException' with message 'Call to undefined method Illuminate\Database\Query\Builder::remember()' 元素会导致滚动条出现。谁能解释我为什么?



h1

html, body {
  margin: 0;
  padding: 0;
  height: 100%;
}
header {
  height:10%;
}
section {
  height:90%;
}




5 个答案:

答案 0 :(得分:14)

那是因为

  • h1默认有一些垂直边距,通常是0.67em
  • h1的上边距崩溃
  • height永远不会包含边距区域的高度

由于h1的上边距崩溃,其行为类似于header而非h1的边距。由于h1的内容高度为10%,因此其总高度为calc(10% + 0.67em)

这就是溢出的原因。

如果您移除上边距但保留底部边距没有问题,因为底部边距不会崩溃,因为非auto height。来自Collapsing margins

  

如果[...]两者都属于垂直相邻,则相邻两个边距   盒子边缘,[...例如]

     
      
  • 盒子的上边距及其第一个流入的孩子的上边距
  •   
  • 最后一个流入的孩子和底部的下边距   如果父级具有auto计算高度,则为其父级的边距。
  •   

所以你可以做以下任何一个

答案 1 :(得分:4)

因为h1带有保证金,由default style sheet应用。

当您将此边距(通常是margin-top: .67emmargin-bottom: .67em)添加到代码中的height: 100%时,这会超出视口高度,启动垂直滚动条。

授予h1一个margin: 0

无论您使用box-sizing: content-box还是border-box,保证金空间都会始终添加到您的height声明中。

如果您想在h1周围添加空格而不增加高度,请使用填充而不是边距,以及box-sizing: border-box。以下是一些实施选项:https://css-tricks.com/box-sizing/

答案 2 :(得分:1)

h1默认情况下已应用保证金。

enter image description here

答案 3 :(得分:1)



*
{
  margin:0px auto;
}
html, body {
  margin: 0 ;
  padding: 0;
  height: 100%;
}
header {
  height:10%;
}
section {
  height:90%;
}

<header>
  <h1>
    Hello
  </h1>
</header>
<section>

  test
</section>
&#13;
&#13;
&#13;

只需添加通用选择器并设置边距*{margin:0px auto;}。希望它能起作用

答案 4 :(得分:1)

块级元素中的h1标签有一些余量。

要删除此类额外边距和填充,建议将所有元素边距和填充重置为0.

这可以通过以下方式完成:

 * {
     margin: 0;
     padding: 0;
 }

&#13;
&#13;
* {
  margin: 0;
  padding: 0;
}
html, body {
  height: 100%;
}
header {
  height:10%;
}
section {
&#13;
<header>
  <h1>
    Hello
  </h1>
</header>
<section>
  test
</section>
&#13;
&#13;
&#13;