我有一个包含大量内容的div,并尝试将其宽度设置为父元素的100%。这个div还使用了内边距,所以我认为应该将宽度设置为auto。
但是由于某种原因,它总是超出父宽度。我甚至将overflow设置为滚动。
我希望这个div能够拥有一个滚动条(仅水平),并且其宽度适合父的宽度。
有人知道如何解决吗?
我希望这个div能够拥有一个滚动条(仅水平),并且其宽度适合父的宽度。
有人知道如何解决吗?
父元素100%宽度,带填充:
考虑到所提及的填充应用于100%宽度的元素,问题出在浏览器使用的盒模型中。如果应用100%宽度和一些填充,则该元素将获得width + padding
作为其完整宽度,因此导致它变得过大。有几种方法可以解决这个问题:
CSS3引入了一个名为box-sizing
的新属性,将其设置为border-box
,填充将添加到元素给定的宽度内,而不是增加宽度,从而导致元素变得“太大”。(请注意旧浏览器的支持不足)。
我认为可以使用left: 0; right: 0;
代替使用width: 100%;
。在这种情况下,您可以添加填充,而无需使元素变得太宽。
实际上第二个选项:
<!-- The markup -->
<div class="parent">
<div class="child">Child</div>
</div>
/* The CSS */
.parent {
width: 200px;
height: 200px;
position: relative;
background-color: #666;
}
.child {
position: absolute;
left: 0;
right: 0;
padding: 10px;
background-color: #888;
}
overflow-x
CSS属性。将其设置为scroll
,当没有内容可滚动时,您将看到一个禁用的滚动条,因此滚动条始终可见。您的另一个选择是将其设置为auto
,在需要时(在不同的浏览器之间可能会有所不同)滚动条将变为可见。box-sizing: border-box;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
width: 100%; overflow-x: scroll
吗? - Bojangles