【发布时间】:2017-11-15 22:29:02
【问题描述】:
我正在使用 flexbox 和 margin:auto 在页面内将元素水平和垂直居中。是否可以使该元素的内容在两个轴上居中,但允许文本在扩展时换行?
在下面的演示中,我不断添加文本以显示当元素使用 flexbox 以这种方式居中时,它如何很快超过浏览器窗口的宽度。我想包装文本并将所有内容都保留在屏幕上。有什么建议吗?
// \ \ \ \ \ \ \ \ \ TYPE WRITER EFFECT / / / / / / / / / / / / / / / / / / ///
function type( i, t, ie, oe ){
input = document.getElementById( ie ).textContent;
document.getElementById( oe ).textContent += input.charAt( i );
setTimeout(
function(){
(
( i < input.length - 1 ) ? type( i+1, t, ie, oe) : false
);
},
t
);
}
type( 0, 100, 'input', 'output' );
/* \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ INITIAL /////////////////////////////// */
html,
body {
height: 100%;
}
body {
display: flex;
flex-wrap: wrap; /* also...this isn't working */
margin: 0;
font-family: sans-serif;
}
p {
margin: auto;
text-align: center;
}
p:nth-child( 2 ) {
display: none;
}
<p id="output"></p>
<!-- \\ \ VERY LONG STRING OF TEXT TO EXTEND PAST SCREEN /////////// // -->
<p id="input">
So I have a long string of text with no spaces. Here I'm using non‑breaking space character entities to simulate that. The problem is I'm using flexbox to center the effected element here, but I don't want all the text to stay on one line like this. There's no spaces, I'm using flexbox, and I want it to wrap. Help?
</p>
ps:flex-wrap: wrap 似乎没有起作用。 (在我的代码中)。
【问题讨论】:
标签: html css text flexbox word-wrap