鉴于这种简单的 struct :

<div id="parent">
    <div id="child">Lorem ipsum</div>
</div>

使用此CSS:

#parent {
    width: 200px;
    height: 200px;
    padding: 20px;
    overflow-x: scroll;
}

#child {
    width: 500px;      
}

Live demo: http://jsfiddle.net/523me/5/

请注意,父对象有20px个填充,子对象水平溢出(因为它更宽).如果将父对象一直向右滚动,您将看到子对象接触到父对象的右边缘.

因此,父级应该有一个正确的填充,但它被忽略了.似乎当子元素有固定的宽度时,父母的正确填充不适用.(这是标准规定的吗?我很想知道.如果你发现了什么,请告诉我!)

在这种情况下,有没有办法强制应用正确的填充,即必须从流中移除任何元素(通过浮动或定位)?

在此处输入图像描述

屏幕截图1-忽略右填充.这就是当前所有浏览器的行为方式.

屏幕截图2-适用右填充.这就是我想要实现的.(顺便说一句,屏幕截图来自IE7,它是唯一不忽略右填充的浏览器.)

推荐答案

你正遭受着this个问题的折磨.

我会通过给子元素留个空白处(而不是给父母一个填充物)来解决这个问题:

body {
  padding: 2em;
}

#parent {
  width: 200px;
  height: 200px;
  overflow-x: scroll;
  background: gray;
}

#child {
  width: 500px;
  background: yellow;
  margin: 20px;
  display: inline-block;
}
<div id="parent">
  <div id="child">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras et turpis eu lorem consectetur blandit sed vel ligula. In lorem ligula, lacinia sed aliquet sed, congue quis tortor. In sed magna eros, eget blandit arcu. Nulla sit amet volutpat ipsum. Duis
    quis nisl massa. Sed ipsum magna, tempus non malesuada in, gravida et sapien. Fusce a odio nulla, quis ultrices mauris. Maecenas in tellus id massa fringilla molestie.</div>
</div>

Css相关问答推荐

转换间隙值时基于百分比的弹性元素&跳转

如何将表格单元格的最后一个子级与单元格底部对齐?

如何将Ant设计日期 Select 器的图标设置在输入 Select 器之前而不是之后

如何通过重复的网格区域来简化网格布局?

.NET 8 预览版 6 中不使用新项目模板提供 Blazor CSS 文件

如何让 v-col 变成可滚动的?

Vue3 组合 api 中的对象值样式

排除特定元素的目标元素

React Tabs 在 Tabs 之间垂直渲染标签内容

Vuetify 抽屉标签溢出/z-index

如何在 VS Code 中获得 JavaFX CSS 属性的自动完成功能?

在具有特定类的 td 之后,如何编写适用于该行上所有 td 元素的表行的 CSS Select 器?

不同的背景 colored颜色 取决于 URL

在活动状态下更改按钮的外观

如何在特定元素之前 Select 每个元素

属性nowrap被认为是过时的.建议使用较新的构造.它是什么?

如何通过 JavaScript 重新触发 WebKit CSS 动画?

最大宽度与最小宽度

从样式设置为 % 的元素获取宽度(以像素为单位)?

height: 100% 或 min-height: 100% 用于 html 和 body 元素?