防止子级采用动态宽度父级的全部宽度

问题描述 投票:0回答:2

我有一个容器,并且该容器的宽度由其最宽的子容器的max-widthwidth确定。

enter image description here

如何在保持一列元素的同时强制每个孩子承担其内容的宽度?

在下面的示例中,如何使abc边框所概述的limegreen元素的宽度仅等于其内容(即abc)的宽度?

#container {
  display: inline-block;
box-sizing: border-box;
border: solid orange 2px;
}

.child {
box-sizing: border-box;
border: solid limegreen 2px;
}
<div id='container'>
  <div class='child'>abcdefghi</div>
  <div class='child'>abc</div>
  <div class='child'>abc</div>
</div>
html css
2个回答
1
投票

flexbox布局将完成工作

#container {
  display: inline-flex;
  flex-direction: column;
  align-items:flex-start;
  border: solid orange 2px;
}

.child {
  border: solid limegreen 2px;
}
<div id='container'>
  <div class='child'>abcdefghi</div>
  <div class='child'>abc</div>
  <div class='child'>abc</div>
</div>

display:table

#container {
  display: inline-block;
  border: solid orange 2px;
}

.child {
  border: solid limegreen 2px;
  display:table;
}
<div id='container'>
  <div class='child'>abcdefghi</div>
  <div class='child'>abc</div>
  <div class='child'>abc</div>
</div>

即使是浮点数也能胜任:

#container {
  display: inline-block;
  border: solid orange 2px;
}

.child {
  border: solid limegreen 2px;
  float:left;
  clear:left;
}
<div id='container'>
  <div class='child'>abcdefghi</div>
  <div class='child'>abc</div>
  <div class='child'>abc</div>
</div>

0
投票

制成.child width: fit-content;

#container {
  display: inline-block;
  box-sizing: border-box;
  border: solid orange 2px;
}

.child {
  box-sizing: border-box;
  border: solid limegreen 2px;
  width: fit-content;
}
<div id='container'>
  <div class='child'>abcdefghi</div>
  <div class='child'>abc</div>
  <div class='child'>abc</div>
</div>
© www.soinside.com 2019 - 2024. All rights reserved.