【问题标题】:How to make html element wrap its content and shrink to fit afterwards? [duplicate]如何使 html 元素包装其内容并在之后缩小以适应? [复制]
【发布时间】:2016-08-27 01:08:33
【问题描述】:

编辑。正如@Aziz 在他的 cmets 中所建议的那样,这个问题被重新措辞。之前问的是用inline-block达到同样的效果,这似乎是不可能的,看答案 CSS when inline-block elements line-break, parent wrapper does not fit new width。新问题询问如何才能实现这种效果,因此不再重复

我有一个包含两个子列的父行容器。我希望每个孩子都包裹他们的文本内容,然后在包裹之后缩小以适合他们的宽度。

下面的例子几乎达到了这个效果:

.parent {
  display: inline-block;
}
.child {
  max-width: 180px;
  display: inline-block;
  border: solid thin;
}
<div class="parent">
  <div class="child">
      I am child with loooong text.
  </div>
  <div class="child">
      I am child with loooong text.
  </div>
</div>

Here is a Demo

唯一的问题是每个孩子并没有完全缩小以适应其内容。每个子项内的文本右侧有明显的空白间隙。

【问题讨论】:

标签: html css browser render


【解决方案1】:

要达到你想要的效果,你只需要确保.child 是一个块元素。这样它将占据父母的宽度并将其余部分包裹在其下。

.parent {
  border:1px solid red;
  display: inline-block;
}
.child {
  border:1px dashed red;
}
<div class="parent">
  I shrink to content slightly longer
  <div class="child">
    incl.Child
  </div>
  but not enough!
</div>

https://jsfiddle.net/azizn/021xqwo4/

【讨论】:

  • display: inline 实现了不同的布局,它不会单独包装每个孩子内部的内容。我真的想换行。
  • 你想换行吗?你什么意思?
  • 包装每个子元素的内容。我希望它们显示为列并将它们的内部内容包装成几行,但仍然缩小以适应它们的内容。
  • 你的意思是jsfiddle.net/azizn/tftoqe7c,但是把宽度缩小到最长的句子
  • 是的,完全正确! inline-blockfloat 似乎都不可能;(
猜你喜欢
  • 2021-11-18
  • 1970-01-01
相关资源
最近更新 更多