首页 > 解决方案 > 填充未正确应用于 div 元素

问题描述

在叠加层中,我添加了一个滚动视图。在我尝试向滚动视图添加填充之前,一切正常。正确应用了顶部和左侧填充,但滚动视图内的文本超出了右侧和底部。这是我的代码

document.addEventListener("keydown", keyDownTextField, false);
this.title_element = jQuery('.scrollviewwrapper', this.$el);

this.title_element.html('<ul>\r<li>Fermentum congue dictumst integer sapien conubia, per volutpat a duis donec, habitasse quisque tristique hac</li>\r<li>Imperdiet aliquam praesent id viverra aliquam inceptos</li>\r<li>Cubilia litora placerat fusce vulputate habitant varius cursus molestie lorem magna mi non</li>\r<li>Imperdiet sociosqu aenean ornare sagittis faucibus in facilisis vitae, lobortis curae hac justo tellus tincidunt</li>\r<li>Urna eu consequat non consectetur duis ut justo eleifend sapien</li>\r</ul> <ul>\r<li>Fermentum congue dictumst integer sapien conubia, per volutpat a duis donec, habitasse quisque tristique hac</li>\r<li>Imperdiet aliquam praesent id viverra aliquam inceptos</li>\r<li>Cubilia litora placerat fusce vulputate habitant varius cursus molestie lorem magna mi non</li>\r<li>Imperdiet sociosqu aenean ornare sagittis faucibus in facilisis vitae, lobortis curae hac justo tellus tincidunt</li>\r<li>Urna eu consequat non consectetur duis ut justo eleifend sapien</li>\r</ul> ');

function keyDownTextField(e) {
  alert(document.getElementById('scrollviewwrapper').scrollTop);
  var keyCode = e.keyCode;

  if (keyCode == 38) {
    // up arrow

  } else if (keyCode == 40) {
    // down arrow
  }
}
.overlay {
  position: absolute;
  background: red;
  height: 200px;
  width: 500px;
  top: 50px;
  left: 20px;
  bottom: 50px;
  z-index: 100;
}

.scrollviewwrapper {
  position: relative;
  height: 200px;
  width: 500px;
  padding-top: 30px;
  padding-left: 30px;
  padding-right: 30px;
  padding-bottom: 30px;
  overflow: auto;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.1/jquery.min.js"></script>
<html>

<body>
  <div class="overlay">
    <div class="scrollviewwrapper" id="scrollviewwrapper">
      test
    </div>
  </div>
</body>

</html>

标签: htmlcss

解决方案


box-sizing:border-box;规则添加到您的.scrollviewwrapper班级:

document.addEventListener("keydown", keyDownTextField, false);
this.title_element = jQuery('.scrollviewwrapper', this.$el);

this.title_element.html('<ul>\r<li>Fermentum congue dictumst integer sapien conubia, per volutpat a duis donec, habitasse quisque tristique hac</li>\r<li>Imperdiet aliquam praesent id viverra aliquam inceptos</li>\r<li>Cubilia litora placerat fusce vulputate habitant varius cursus molestie lorem magna mi non</li>\r<li>Imperdiet sociosqu aenean ornare sagittis faucibus in facilisis vitae, lobortis curae hac justo tellus tincidunt</li>\r<li>Urna eu consequat non consectetur duis ut justo eleifend sapien</li>\r</ul> <ul>\r<li>Fermentum congue dictumst integer sapien conubia, per volutpat a duis donec, habitasse quisque tristique hac</li>\r<li>Imperdiet aliquam praesent id viverra aliquam inceptos</li>\r<li>Cubilia litora placerat fusce vulputate habitant varius cursus molestie lorem magna mi non</li>\r<li>Imperdiet sociosqu aenean ornare sagittis faucibus in facilisis vitae, lobortis curae hac justo tellus tincidunt</li>\r<li>Urna eu consequat non consectetur duis ut justo eleifend sapien</li>\r</ul> ');

function keyDownTextField(e) {
alert(document.getElementById('scrollviewwrapper').scrollTop);
var keyCode = e.keyCode;

  if(keyCode==38) {
  // up arrow

  } else if(keyCode==40) {
	// down arrow
  }
}
.overlay{
  position: absolute;
  background: red;
  height: 200px;
  width: 500px;
  top: 50px;
  left: 20px;
  bottom : 50px;
  z-index: 100;
}

.scrollviewwrapper{
  position: relative;
  height: 200px;
  width: 500px;
  padding-top: 30px;
  padding-left: 30px;
   padding-right: 30px;
  padding-bottom: 30px;
  overflow:auto;
  box-sizing:border-box;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.1/jquery.min.js"></script>
<html>
<body>
<div class="overlay">
<div class="scrollviewwrapper" id="scrollviewwrapper">
test
</div>
</div>
</body>
</html>


推荐阅读