我的div内有一个div。内部div包含一个复选框。选中此复选框后,内部div的尺寸会超出外部div的尺寸,因此,由于parentDiv的overflow属性设置为auto,因此我们会获得滚动条。但是,如果再次取消选中此复选框,则滚动条将保留,但内部div的尺寸小于父div的尺寸。似乎在进行重新计算时要牢记滚动条占用的尺寸。有没有一种方法可以解决这个问题,因为当内部div可以适合外部div时,我不希望滚动条。
<div ng-controller="MyCtrl" class="parentDiv">
<div class="childDiv" ng-class="{'changeSize': item.checked}">
<input type="checkbox" ng-model="item.checked">
</div>
</div>
的CSS
.parentDiv {
height : 100px;
width : 200px;
overflow:auto;
border : 1px solid;
}
.childDiv {
height : 95px;
width : 190px;
border : 1px solid green;
}
.changeSize {
height : 150px;
width : 250px;
}
这可以通过三种方式解决。
您可以将您的溢出属性更改为overlay(这将使您的scorllbar位于子div的顶部(不是很好))。
.parentDiv {
height : 100px;
width : 200px;
overflow:overlay;
border : 1px solid;
}
您可以将父div样式编辑为隐藏,然后通过引入超时将其更改为自动。这是js小提琴的链接JsFiddle链接
您可以检查div是否确实需要滚动条,然后从js更改css。JsFiddle链接
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句