javascript - 在考虑其子项“max-width”的同时扩展“div”
问题描述
我的前端技术很差,我的英文表达也很差。对不起先。
我有这几个div
s (一些color
s 和margin
s 被添加为某种视觉辅助):
<html>
<header>
<style>
.outer-container {
margin: 2px;
padding: 2px;
border: 1px deeppink dashed;
}
.inner-container {
margin: 2px;
padding: 2px;
border: 1px deeppink dotted;
display: flex;
flex-direction: row;
align-items: center;
}
.content0 {
background-color: black;
color: white;
border: 1px red solid;
white-space: nowrap;
}
.content1 {
max-width: 500px;
background-color: black;
color: white;
flex-grow: 1;
border: 1px red solid;
white-space: nowrap;
}
</style>
</header>
<body>
<div class="outer-container" style="width: 100%" align="center">
<div class="inner-container">
<div class="content0">Placeholder</div>
<div class="content1">Placeholder</div>
</div>
</div>
</body>
</html>
这是我的预期行为:
- 具有
outer-container
某种“外部指定”的宽度(width: 100%
在此示例中,但不限于此情况)。 - 预计
content0
将具有显示其内容的最小宽度。预计content1
将横向扩展并占据其“容器”的空间,最多500px
。 - 预计
inner-container
会扩展并占用其“容器”的空间,同时考虑其子项的最大宽度。在这个例子中,我预计它会扩展直到content1
达到它的max-width
. 然后,inner-container
与 的中心对齐outer-container
。
图 1:当
outer-container
是窄inner-container
的时候,简单地填充outer-container
.图 2:当
outer-container
变宽时,inner-container
展开直到它的子节点停止展开,然后inner-container
到达 的中心outer-container
。这张图片是由 制作的mspaint
,我真的不知道如何用 HTML/CSS 来实现它。
但是,我在尝试实施第三项时遇到了麻烦。我尝试了很多组合并再次搜索。但每次尝试,要么inner-container
根本不膨胀,要么inner-container
膨胀吞噬outer-container
。是否可以使用 HTML 和 CSS(如果确实需要,还可以使用 JavaScript)来实现这一点?如果是这样,怎么办?
解决方案
我能得到的最接近的是https://jsfiddle.net/ne9phs5y/。
content0
and的content1
行为符合预期,但不幸的是,它inner-container
填充了整个outer-container
可能或可能不是问题的内容。最重要的部分是将flex-basis设置为content1
500px。
推荐阅读
- cron - 搜索结束删除 crontab 作业
- ruby-on-rails - Rails Redis 命令超时请求
- qt - 如何测量 QML 项目自加载以来出现在屏幕上所用的时间?
- git - 让 Bitbucket README Markdown 接受 LF 代替 CLRF?
- html - 响应式 CSS 将图像限制为屏幕的一半,希望水平显示它们
- python - python3:json可以解码为元组吗?
- python - pool.map:TypeError map() 从 x 到 y 位置参数,但给定了 z
- r - 在 R 中解码推文中的 unicode
- javascript - JS\TS - 无法在基于多个特殊字符的字符串中添加空格
- module - 两个球拍模块碰撞