【问题标题】:CSS Div height not expanding to fit content or wrapping contentCSS Div 高度未扩展以适应内容或包装内容
【发布时间】:2018-05-24 12:25:15
【问题描述】:

我在获取 div 中的内容(或其值)以环绕内部并使 div 的高度适应内容时遇到问题。

顶部的一个容器,消息框。里面有三个div,如附图所示。我需要让 div 每个消息和每个消息内容调整其高度以适应里面的内容。我查看了该站点中的许多帖子,并尝试了许多溢出:隐藏和高度:自动的组合,但它们最终使每个消息内容都横向滚动,并且束手无策。

我怎样才能做到这一点?

**** 更新为 HTML *****

<div className="message-box">
 <div className="each-message-box">
   <div className="each-message">
     <div className="each-message-date">Date</div>
     <div className="each-message-content">ContentContentContentContentContentContentContentContentContentContent</div>
     </div>
   </div>
 </div>
</div>

.each-message-box {
  width: 100%;
  display: block;
  overflow: auto;
  height: auto;
  margin: 1px;
}

.each-message {
  width: 270px;
  height: 100px;
  margin: 2px;
  border: 1px solid #ccc;
  overflow: hidden;
  height: auto;
}

.each-message-date {
  border: 1px solid #ccc;
  font-size: 10px;
  color: #ccc;
  text-align: left;
}

.each-message-content {
  width: 100%;
  border: 1px solid #ccc;
  text-align: left;
  border-radius: 10px;
  height: auto;
}

【问题讨论】:

  • 请贴出相关的HTML
  • 用 HTML 更新。这是在一个反应​​项目中,所以我已经简化了它以理解这一点。谢谢。
  • 试试div class = ,然后用word-break: break-all;打断长字
  • 啊……我明白了。我应该只是用常规的话。属性 className 用于 Reactjs。谢谢。

标签: javascript html css


【解决方案1】:

这样断词不是很优雅,但如果需要的话。顺便说一句,除了className,您的 HTML 中还有一个额外的内容。

编辑:忽略关于 className 的评论 - 发布此答案后添加的反应项目评论。

.each-message-box {
  width: 100%;
  display: block;
  overflow: auto;
  height: auto;
  margin: 1px;
}

.each-message {
  width: 270px;
  height: 100px;
  margin: 2px;
  border: 1px solid #ccc;
  overflow: hidden;
  height: auto;
  word-break: break-all;
}

.each-message-date {
  border: 1px solid #ccc;
  font-size: 10px;
  color: #ccc;
  text-align: left;
}

.each-message-content {
  width: 100%;
  border: 1px solid #ccc;
  text-align: left;
  border-radius: 10px;
  height: auto;
}
<div class="message-box">
  <div class="each-message-box">
    <div class="each-message">
      <div class="each-message-date">Date</div>
      <div class="each-message-content">ContentContentContentContentContentContentContentContentContentContent
      </div>
    </div>
  </div>
</div>

【讨论】:

  • 是的,我应该只输入较短的单词...但是无论如何知道中断单词技巧是件好事。谢谢。
【解决方案2】:

创建一个函数来实时记录输入字符的数字,并使用javascript相应地更改容器的宽度。

【讨论】:

  • 我什至不是在谈论来自用户输入的动态实时内容,尽管这很有趣。它只是来自数据库的内容。
【解决方案3】:

如果您的 CSS div 高度未扩展以适应内容或包装内容。 只需使用一个简单的技巧。

在消息框 div 的结束标记之前添加一个类 cl 的 div <div class="message-box"><div class="cl"></div></div>

现在在你的 Css 中给这个样式.cl{clear:both;}

如果您在 div 上有自动高度,则使用它仍然会包装内容。我希望它对您有用。

【讨论】:

  • 谢谢,我试试看。
  • 让我知道它是否有效或者如果还有任何问题,请告诉我
猜你喜欢
  • 2019-12-23
  • 2015-04-23
  • 2016-05-12
  • 2012-02-11
  • 2023-03-11
  • 1970-01-01
  • 1970-01-01
  • 2011-01-20
  • 1970-01-01
相关资源
最近更新 更多