当元素的父元素溢出时,使元素宽度拉伸以适合其子元素:auto;

2024-01-20

在这个简化的示例中,我有一个书柜,书架上放着书籍。书架是具有定义宽度的最外面的元素。书架上的书应该从左到右排列,没有包装。书架应该拉伸其宽度以显示书架上的所有书籍。所有书架的宽度必须相同,即最宽书架的宽度。

My HTML:

<div class="bookcase">
    <div class="bookshelf">
        <div class="book">
        <div class="book">
        <div class="book">
    </div>
    <div class="bookshelf">
        <div class="book">
        <div class="book">
        <div class="book">
        <div class="book">
    </div>
    <div class="bookshelf">
        <div class="book">
    </div>
</div>

My CSS:

.bookcase {
    width: 40%;
    height: 300px;
    margin: 0 auto;
    background: lightgrey;
    overflow-x: auto;
}
.bookshelf {
    background: lightgreen;
    white-space: nowrap;
}
.book {
    display: inline-block;
    height: 60px;
    width: 60px;
    background: pink;
}

jsFiddle 演示 http://jsfiddle.net/gr9rg/3/

当前代码的问题在于,当书架宽度小于最长的书架并且书架使溢出可滚动时,书架元素不会拉伸以适合所有书籍。目前,书架的宽度似乎等于父书架的宽度。

这些图片很能说明问题。这是书柜正常的样子,很好:

looks good scrolled left with narrow bookcase or looks good with wide bookcase

但是,当书架较窄时向右滚动时,书架的绿色背景被切断,而不是到达最后一本红色书的右侧:

如何使书架占据溢出元素的整个宽度,而不是书架父容器的宽度?


感谢 Javalsu、Hashem Qolami 和 Danield 帮助我找到了合适的解决方案。事实上,诀窍是利用表格固有的显示属性。我找到的解决方案是将.bookcase在另一个元素中(我将此包装元素称为.wall)。移动overflow: auto;与静电height: and width:属性来自.bookcase to the .wall,并添加display: table; and width: 100%; to the .bookcase.

The display: table;当溢出滚动时需要属性,并且width: 100%;当溢出不滚动时需要。

我的新 HTML:

<div class="wall">
    <div class="bookcase">
        <div class="bookshelf">
            <div class="book"></div>
            <div class="book"></div>
            <div class="book"></div>
        </div>
        <div class="bookshelf">
            <div class="book"></div>
            <div class="book"></div>
            <div class="book"></div>
            <div class="book"></div>
        </div>
        <div class="bookshelf">
            <div class="book"></div>
        </div>
    </div>
</div>

我的新CSS:

.wall {
    width: 60%;
    height: 300px;
    margin: 0 auto;
    background: lightgrey;
    overflow: auto;
}
.bookcase {
    display: table;
    width: 100%;
}
.bookshelf {
    background: lightgreen;
    white-space: nowrap;
}
.book {
    display: inline-block;
    height: 60px;
    width: 60px;
    background: pink;
}

jsFiddle 演示 http://jsfiddle.net/gr9rg/8/

Result:
looks good when scrolled or looks good when no scroll

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

当元素的父元素溢出时,使元素宽度拉伸以适合其子元素:auto; 的相关文章

  • 通过使用 Jquery 添加类来触发 CSS3 转换

    目前我有一个正在运行的小提琴 当我向它添加一个类时 我试图让 css3 不透明过渡触发 基本设置是我单击一个按钮 然后通过 jquery 添加一个 div 到 dom 然后将该元素添加到 dom 然后向其中添加一个类 向该新 dom 元素添
  • 创建由线连接的 CSS3 圆圈

    我必须在 CSS 中实现以下圆形和线条组合 并且我正在寻找有关如何有效实现此功能的指示 圆圈和线条应如下所示 我能够这样实现圆圈 span step background ccc border radius 0 8em moz border
  • Sass 与 BEM,继承选择器

    我正在使用 Sass 3 4 1 和 BEM 所以我的 scss 是 photo of the day title font size 16px 我希望每次将鼠标悬停在 photo of the day标题发生了一些事情 这很常见 所以通常
  • DOM更改后刷新浏览器悬停效果

    我有一个 css 已更改的元素 hover 我还有一些 javascript 可以改变元素的高度 但是如果 javascript 在 hoverstate 处于活动状态 即使高度变化将元素从鼠标下方移出 状态仍保持不变 另外 由于 java
  • CSS 中的重叠图像

    如何让 mymessage gif 显示在 bread wine jpg 之上 mymessage gif 具有透明背景
  • Django base.html扩展为homepage.html,出现静态图像,但home.css不起作用

    Problem 正如标题所示 我正在构建一个 django 项目 base html 扩展为 homepage html 并且工作正常 出现静态图像 但 home css 在任何地方都不起作用 Update 我已经切换了base html
  • 有没有带有保存和语法突出显示功能的 HTML、CSS 在线文本编辑器?

    我想让 css 文件可以从任何地方 家庭 办公室等 访问并准备好编辑 并保存 我将进行手工编码 只想语法突出显示并保存在网络设施上 我尝试了谷歌文档 这很好 因为我可以在线保存 而且它也有修订历史记录功能 这很有用 但它没有语法突出显示 也
  • 如何使子元素被访问/活动时父元素的颜色发生变化

    我有一个下拉导航 我想要做的是 当我单击任何子菜单链接时 我希望父按钮的颜色在链接处于活动状态时保持更改 这是代码的小提琴链接 https jsfiddle net v28ydshL https jsfiddle net v28ydshL
  • jQuery:根据鼠标位置移动的全屏“背景”图像[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在尝试实现一个根据鼠标位置移动的全屏背景 例如 如果您将鼠标移动到左上角 视口将显示图像的左上角以
  • 如何将文本环绕在非矩形图像周围?

    是否可以将文本环绕在非矩形图像周围 我希望不同国家的地图周围的文本环绕该国家 地区的形状 即使边界本身不是直的 文本也始终与该国家 地区的边界保持相同的距离 这可能吗 您可以使用这个方法 http torylawson com index
  • 为什么table-layout:fixed会影响父元素的宽度?

    有人可以解释为什么我的div with table layout fixed正在改变其父元素的宽度 body在本例中 使其在不应该是 100 的情况下达到 100 因为它已经定位了 body border 2px solid red hei
  • Bootstrap .row margin-left: -15px - 为什么它会缩进(来自文档)

    我在 Bootstrap 文档中看到了这一行 http getbootstrap com css grid intro http getbootstrap com css grid intro It says 列通过填充创建装订线 列内容之
  • 裁剪响应式全宽图像

    我必须剪辑跨越整个宽度的图像 以下事情对我不起作用 剪辑 这需要绝对位置 因此块元素不会堆叠在下面 背景位置 缩放时无法正确剪辑 放大时剪辑的部分会增加 反之亦然 包装器 包装器高度取决于浏览器宽度 因此其值应该是动态的 我使用了 seti
  • 强制应用媒体查询

    我有这个 html 和 css 代码 div class wrapper div class a div div class b div div media all and max width 400px max height 300px
  • 如何使div垂直滚动[重复]

    这个问题在这里已经有答案了 我用图片元素列表做了一个水平滚动 但是当我垂直滚动它时我失败了 我的水平滚动条代码是 div class pic container div class pic row div style width 100 a
  • 设置绝对仓位和保证金

    我想设置一个元素的position to absolute并有一个margin bottom 但似乎margin bottom没有效果 HTML div div CSS container border 1px solid red posi
  • Zurb 基金会粘性页脚

    我想使用 Foundation 4 拥有粘性页脚 并且我想使用 HTML5
  • 如何选择一个元素但排除其子元素

    我明白 div hover not class 作品 但是 如何实现 LI 元素的 悬停 效果 但排除鼠标悬停在LI内的某个 DIV 上时的悬停效果 E G li Hello div Bye div li 我想获得 li 的悬停效果 li
  • 如何使弹出窗口溢出:在溢出内可见:自动上下文

    我有一个 div 列表 如果超过父框 overflow x 应该滚动 并且在悬停时 我想看到一个弹出窗口 我的问题是 如果我将鼠标悬停在任何子 div 上 弹出窗口将被考虑用于溢出计算 但我只想让它在所有内容之上可见 而不是使其扩展滚动区域
  • IE10 中的弹性盒

    我试图让弹性框在 IE10 中工作 但它不起作用 Safari Chrome 和 Firefox 工作正常 但 IE10 不工作 有人知道答案吗 代码笔 http codepen io anon pen vcEGH http codepen

随机推荐

  • 有没有办法列出 vim 中所有默认的正常、可视和插入模式绑定?

    当您使用不带任何参数的 map 命令时 它似乎只列出自定义和插件绑定 有没有办法查看所有绑定 很高兴知道自定义绑定是否会与默认绑定之一冲突 或者 有合适的在线参考吗 您可以通过键入获得所有标准键绑定的列表 help index 这些是除了由
  • 使用 pyspark 读取 KMS 加密 Spark 数据帧并将其写入 S3 存储桶时出现问题

    我正在尝试使用 Pyspark 将 Spark 数据帧写入 AWS S3 存储桶 但出现不支持指定的加密方法的异常 该存储桶具有服务器端加密设置 我从spark default conf运行以下包 Spark jars packages c
  • Angular 2 + Material:无法使用带有第二个参数“text”、“card”等的map-get

    使用 Angular 2 4 Material 我需要自定义组件的主题 我首先尝试使用内置调色板 但不断收到 错误 未定义 仅当将 primary accent 或 warn 作为第二个参数传递给map get 时 它才有效 样式 scss
  • 为什么包含 -fPIC 来编译静态库会导致运行时出现分段错误?

    我正在使用 g 编译 C 静态库并使用 fPIC 选项 我必须使用 fPIC 选项 因为最终该库将与其他静态库链接以形成动态库 当我在本地测试静态库时 如果不包含 fPIC 选项 它可以完全正常工作 但是 一旦我使用 fPIC 编译库 我就
  • WPF 中的作物变换?

    WPF 允许使用以下子类Transform http msdn microsoft com en us library system windows media transform aspx缩放 ScaleTransform http ms
  • ng-include 编译为注释

    我有一个角度应用程序 想要在模板中添加其他内容作为 div ng include 似乎是一个完美的选择 在main html中 div div src div div 在 module html 中 div class module h1
  • 在 Visual Studio 2013 中找不到“置于前面”和“发送到后面”选项

    我是 Visual Studio 2013 的新手 我使用带有两个面板的单一表单 其中第二个面板堆叠在第一个面板的顶部 我无法切换到第一个面板 我搜索过谷歌 也在这里寻找答案 他们都建议使用 置于前面 和 发送到后面 选项 但我在任何地方都
  • 如何获取React Native GoogleSignIn的accessToken?

    我无法获取 accessToken 我需要在后端 api 中使用它 当我尝试这个时 googleLogin gt GoogleSignin signIn then data gt console log TEST JSON stringif
  • 如何使用 PHP 异常来定义重定向?

    我一直被教导在编程中使用异常可以从引发错误的对象中抽象出错误处理 看着PHP手册 http www php net manual en reserved exceptions php 看来PHP有一个Exception类和一个ErrorEx
  • 用字符串填充表格视图

    我已阅读 API 和示例 但无法理解如何填充表格视图 假设我有一个两列字符串数组 String 其中包含 名称 值 对 我现在只想创建一个表格视图 它在两列中显示数据 在第一列中显示原始数组中所有行的名称 在第二列中显示值 我尝试了什么 什
  • MySQL远程连接【不正常】

    我无法从外部访问 mysql 我认为这是 mysql 或防火墙的东西或 mysql 中的某些特权 我已经尝试执行互联网上的步骤 我将逐步介绍该过程 以举例说明我正在做的事情 并为其他遇到同样问题的人提供教程 我在用着 ubuntu serv
  • pyinstaller可执行文件的差异更新(修改嵌入的PYZ-00.pyz)

    我计划创建一个巨大的可执行目录并将其安装在某些设备上 想象一下 后来我发现我的 python 模块中有一个错误 有没有办法只传输 复制修改后的字节码 并用新的字节码替换原始字节码 我想这样做的原因是 在我的上下文中 带宽非常昂贵 我想远程修
  • 大型项目没有 PHP?为什么不? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我读过一些帖子 人们指出 没有建议 没有讨论 没有提供 PHP 不应该用于大型项目 作为一名主要的 PHP 开发人员 我问两个问题 大型项目 的
  • 带有 pod 标签的 Prometheus kubelet 指标 [关闭]

    Closed 这个问题是与编程或软件开发无关 help closed questions 目前不接受答案 我想弄清楚如何使用 prometheus stack 将 pod 标签从 kubelet 指标获取到指标标签 在我们的环境中 我们需要
  • 在 C 中调用函数时的序列点和未定义/未指定的行为

    我试图确定我对 C 中序列点的理解 只是想检查一些东西 目前 我认为 1 是未定义的 而 2 只是未指定的 因为在 2 中 在评估参数后存在序列点g and h 所以我们不修改i序列点之间两次 但是参数的求值顺序f仍然未指定 我的理解正确吗
  • 为什么我的 Azure 存储帐户上的队列域丢失?

    我已使用以下设置在 Azure 上成功创建存储帐户 部署 资源管理器 类型 通用 标准 复制 ZRS 在 Azure 门户上 我可以看到 Blob 服务 如果单击它 我可以在 blob 域下创建 blob 容器 https 帐户名称 blo
  • Javascript字典性能问题

    现在我有以下 javascript 字典 var a a SVG343 1942 a UAL534 2153 右边的数字代表时间 键是唯一的 ID 我想让 id 成为键 因为它们是唯一的 我的问题是给出一个时间找到对应的id 我要如何做到这
  • 将外部域名连接到AWS S3网站

    我想在 Amazon S3 上托管一个静态网站 创建了相关的存储桶 测试它们正常 现在我已经在 EuroDNS 注册了一个域名 www gopropel io 我找不到如何将其连接到我的 AWS S3 存储桶 我需要创建路由 53 托管区域
  • Flutter Firebase Messaging 无法创建服务 io.flutter.plugins.firebasemessaging.FlutterFirebaseMessagingService

    我正在尝试在 Flutter 应用程序中使用 Firebase Messaging 我遵循包装上的所有说明 在我的 pubspec yaml 中 我有这些包 dependencies flutter sdk flutter firebase
  • 当元素的父元素溢出时,使元素宽度拉伸以适合其子元素:auto;

    在这个简化的示例中 我有一个书柜 书架上放着书籍 书架是具有定义宽度的最外面的元素 书架上的书应该从左到右排列 没有包装 书架应该拉伸其宽度以显示书架上的所有书籍 所有书架的宽度必须相同 即最宽书架的宽度 My HTML div class