上下滚动条出现的原因及解决办法
1.总结
1.1.现象
1.1.1.错误代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="">
<meta name="author" content="">
<title>上下滚动条</title>
<link rel="stylesheet" href="stylereset.css">
<style type="text/css">
/*这里绝对定位*/
.myContainer {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
min-width: 1280px;
border: dashed;
}
/*这里绝对定位*/
.myBadScrollContainer {
position: absolute;
left: 200px;
right: 50px;
bottom: 0;
background: red;
box-sizing: border-box;
}
/*这里相对定位*/
.myBadScroll {
position: relative;
left:50px;
top: 100px;
background: green;
}
.myfooter{
position: relative;
height:80px;
}
.mysubfooter{
position: absolute;
height: 50px;
}
</style>
</head>
<body>
<div class="myContainer">
<div class="myBadScrollContainer">
<div class="myBadScroll">
content
</div>
<div class=”footer”>footer</div>
</div>
</div>
</body>
1.1.2.绝对定位的问题
样式中class="myBadScroll"采用相对定位。
这里myBadScrollContainer高度:99.2=myBadScroll 19.2+footer 80。
每个元素在页面的普通流中会“占有”一个位置,这个位置可以理解为默认值,而相对定位就是将元素偏离元素的默认位置,但普通流中依然保持着原有的默认位置(19.2)。(在父级节点的content-box区定位,父级节点有文字的话,元素的默认位置则是紧随文字)。
不会改变行内元素的display属性。
并没有脱离普通流,只是视觉上发生的偏移。
myBadScrollContainer这里已经紧贴底部,当Height_top>Height_footer=80时,即产生滚动条。99.2-19.2。
1.2.解决思路
去掉top设置,顺其自然。