当文本太多时,flexbox布局中的子项扩展到父项外部

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了当文本太多时,flexbox布局中的子项扩展到父项外部相关的知识,希望对你有一定的参考价值。

首先,我正在使用React JS并尝试使用react-textfit模块来允许文本自动适合div而不扩展div。

但是,它似乎永远不会起作用,因为子项目似乎在父项之外继续扩展。我相信因为这个,react-textfit模块永远不会被调用。

那么它目前的样子是:

enter image description here

注意flex子项如何在外部div(红色框)之外扩展。

这是我的代码的简化形式(从React样式转换为简单的html / CSS):

.parent {
	margin: 200px;
	width: 300px;
	height: 200px;
}

.outer {
	width: 100%;
	height: 100%;
	display: flex;
	background-color: white;
	justify-content: center;
	align-items: center;
	padding: 10px;
	flex-direction: column;
	border: solid red 3px;
}

.inner {
	flex: 1;
	font-size: 20px;
	display: flex;
	text-align: center;
	justify-content: center;
	align-items: center;
	border: solid blue 1px;
}
<div class="parent">
	<div class="outer">
		<div class="inner">
			<Textfit mode="multi">
				The quick brown fox jumps over the lazy dog. The quick brown fox jumps over the lazy dog. The quick brown fox jumps over the lazy dog.
			</Textfit>
		</div>
		<div class="inner">
			<Textfit mode="multi">
				The quick brown fox jumps over the lazy dog. The quick brown fox jumps over the lazy dog. The quick brown fox jumps over the lazy dog.
			</Textfit>
		</div>
		<div class="inner">
			<Textfit mode="multi">
				The quick brown fox jumps over the lazy dog. The quick brown fox jumps over the lazy dog. The quick brown fox jumps over the lazy dog.
			</Textfit>
		</div>
	</div>
</div>
答案

这将根据您的要求正常工作

       .parent {
            display: flex;
            justify-content: center;
            align-items:center;
        }

        .outer {
            width: 300px;
            height: auto;
            display: flex;
            background-color: white;
            padding: 10px;
            flex-direction: column;
            border: solid red 3px;
            box-sizing: border-box;
            position: absolute;
            top:0px
        }

        .inner {
            flex: 1;
            font-size: 40px;
            display: flex;
            text-align: center;
            justify-content: center;
            align-items: center;
            border: solid blue 1px;
        }

enter image description here

以上是关于当文本太多时,flexbox布局中的子项扩展到父项外部的主要内容,如果未能解决你的问题,请参考以下文章

单击滑动面板中的子项首先触发父项?

如何将父项的第一个子项中的属性移动到 XSLT 中的父项?

Chrome不会根据孩子的内容展开flex parent [重复]

在 CSS flexbox 布局中,如果父级可垂直滚动,是不是有办法将子块高度锁定到父级(滚动)高度?

双向多对一关联。插入新子项时,还会插入一个新的不需要的父项,并与子项具有相同的名称

VLG 组件不扩展无论子项的长度如何