为什么我的文本仍在浮动 div 下换行?
Why is my text still wrapping under a floated div?
我有一个渲染组件,可以渲染一些文本和图像。该组件是一个包含两个 div 的 DIV。第一个 div 包含图像,这个 div 向右浮动。接下来的 div 包含各种文本字符串。我有 overflow: hidden on the parent div,但我的文本仍然环绕着包含图像的 div。我目前可以解决此问题的唯一方法是将包含图像的 div 的高度设置为 100%。但是,如果我这样做,我就无法为此 div 添加边框/背景,因为它会扩展整个页面。
简而言之,我有一个包含两个 div 的 div。我希望我的文本在一列中,而图像在另一列中。我不希望文字在图像下方换行。我已经访问了其他文本换行问题,但是溢出隐藏或添加跨度标签似乎并不能解决我的问题。
下面是渲染函数和随之而来的SASS/CSS。
render() {
const renderHelpFile = this.props.data.filter(obj => {
return this.props.name === obj.name;
}).map((obj, idx) => {
return (
<div key={idx} className="fadingDiv">
<div className="divImg">
<img src={`${obj.image}`} className="helpFileImg"></img><br />
</div>
<div className="displayLineBreak">
<h3 style={upperStyle}> {obj.name} </h3>
<b>Path:</b> {obj.path} <br /><br />
{obj.content} <br /><br />
<b>Troubleshooting:</b> {obj.troubleshoot} <br /><br />
<b>Video:</b> {obj.video} <br />
</div>
</div>
);
});
css
.fadingDiv {
text-align: justify;
overflow:hidden;
-webkit-animation: divFadeIn .75s ease-in forwards;
animation: divFadeIn .75s ease-in forwards;
}
.displayLineBreak {
white-space: pre-line;
}
.divImg {
width: 35%;
float: right;
padding: 5px;
background: #0080ff;
border: 2px solid black;
border-radius: 2px;
//height: 100%;
}
.helpFileImg {
width: 100%;
height: auto;
}
这就是 float
的工作方式 - 文本 "floats" 围绕它。
您可以根据 width
设置将两个容器都定义为 inline-block
,而不是使用浮动,或者您可以将 display: flex
放在容器元素上。
如果您知道图像的宽度,则可以将其用于图像容器的固定宽度,并使用 calc
作为文本容器的宽度,例如 width: calc( 100% - XXpx );
,其中 XX代表图像的宽度。
我有一个渲染组件,可以渲染一些文本和图像。该组件是一个包含两个 div 的 DIV。第一个 div 包含图像,这个 div 向右浮动。接下来的 div 包含各种文本字符串。我有 overflow: hidden on the parent div,但我的文本仍然环绕着包含图像的 div。我目前可以解决此问题的唯一方法是将包含图像的 div 的高度设置为 100%。但是,如果我这样做,我就无法为此 div 添加边框/背景,因为它会扩展整个页面。
简而言之,我有一个包含两个 div 的 div。我希望我的文本在一列中,而图像在另一列中。我不希望文字在图像下方换行。我已经访问了其他文本换行问题,但是溢出隐藏或添加跨度标签似乎并不能解决我的问题。
下面是渲染函数和随之而来的SASS/CSS。
render() {
const renderHelpFile = this.props.data.filter(obj => {
return this.props.name === obj.name;
}).map((obj, idx) => {
return (
<div key={idx} className="fadingDiv">
<div className="divImg">
<img src={`${obj.image}`} className="helpFileImg"></img><br />
</div>
<div className="displayLineBreak">
<h3 style={upperStyle}> {obj.name} </h3>
<b>Path:</b> {obj.path} <br /><br />
{obj.content} <br /><br />
<b>Troubleshooting:</b> {obj.troubleshoot} <br /><br />
<b>Video:</b> {obj.video} <br />
</div>
</div>
);
});
css
.fadingDiv {
text-align: justify;
overflow:hidden;
-webkit-animation: divFadeIn .75s ease-in forwards;
animation: divFadeIn .75s ease-in forwards;
}
.displayLineBreak {
white-space: pre-line;
}
.divImg {
width: 35%;
float: right;
padding: 5px;
background: #0080ff;
border: 2px solid black;
border-radius: 2px;
//height: 100%;
}
.helpFileImg {
width: 100%;
height: auto;
}
这就是 float
的工作方式 - 文本 "floats" 围绕它。
您可以根据 width
设置将两个容器都定义为 inline-block
,而不是使用浮动,或者您可以将 display: flex
放在容器元素上。
如果您知道图像的宽度,则可以将其用于图像容器的固定宽度,并使用 calc
作为文本容器的宽度,例如 width: calc( 100% - XXpx );
,其中 XX代表图像的宽度。