我正在尝试使用flexbox将容器中显示的所有字母均匀地隔开。现在,如果我输入“我喜欢学习代码”之类的句子,则所有元素都将显示在容器中并且可以正常工作,但是如果我使用诸如“ refrigerator”之类的长字,则字母将来自容器中。但是,无论单词有多长,我都试图将所有字母保留在容器中。我尝试了所有可用的flexbox技术,但是没有运气。也尝试在容器上设置最大宽度。我想念什么?这是代码沙箱中的代码:https : //codesandbox.io/s/modern-sun-3u7b3? file =/ src/ App.js
import React from "react";
import "./styles.css";
function App() {
// let sentence = "I like learning code";
let sentence = "refrigerator";
const words = sentence.split(" ");
return (
<div className="pageContainer">
{words.map((word, i) => (
<div className="row" key={i}>
{[...word].map((letter) => (
<p className="letterBorder">{letter}</p>
))}
{i === words.length - 1 ? null : <p className="whiteSpaceBorder"></p>}
</div>
))}
</div>
);
}
export default App;
.letterBorder {
border: 25px;
background: grey;
padding: 20px;
width: 50px;
height: 30px;
flex-grow: 1;
margin-right: 4px;
margin-left: 4px;
}
.row {
display: flex;
justify-content: space-evenly;
min-width: 100%;
align-content: flex-start;
}
.whiteSpaceBorder {
border: 25px;
background: orange;
padding: 20px;
width: 50px;
height: 30px;
flex-grow: 1;
margin-right: 4px;
margin-left: 4px;
}
.pageContainer {
border-radius: 1rem;
text-align: center;
background: lightcyan;
height: 40rem;
width: 30rem;
margin: auto;
}
您的错误归因于letterBorder类的硬编码水平填充。
更换
padding: 20px;
与
padding: 20px 0;
https://codesandbox.io/s/gracious-violet-qg1xt?file=/src/App.js
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句