CSS将内容放在中间,一些内容放在div的右侧[已关闭]

knpiaxh1  于 2022-12-24  发布在  其他
关注(0)|答案(3)|浏览(114)

已关闭。此问题需要details or clarity。当前不接受答案。
**想要改进此问题?**添加详细信息并通过editing this post阐明问题。

2天前关闭。
Improve this question
我怎样才能让内容在div的中间,图标在div的右边呢?现在的情况是:

但我希望它是这样的:

请注意,上述50%位于div的中心,pencil图标位于右侧。

.w-100 {
  width: 100%;
}
<div class="w-100">
  <p>{value}</p>
  <img src="https://via.placeholder.com/50" />
</div>
2ic8powd

2ic8powd1#

您可以使用flexbox来完成此操作...

.w-100 {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}

.img-icon {
  align-self: end;
}
<div class="w-100">
  <p>{value}</p>
  <img class='img-icon' src="https://via.placeholder.com/50" />
</div>
kqqjbcuj

kqqjbcuj2#

可以在父元素上使用display:flex,在要拉伸的元素上使用flex-grow: 1
请参见下面的片段:

.content {
  display: flex;
  flex-direction: row;
  justify-content: space-between;
  align-items: center;
  border: 1px solid lightgray;
}

p {
  text-align:center;
  flex-grow: 1;
}
<div class="content">
  <p>50%</p>
  <img src="https://icons.iconarchive.com/icons/custom-icon-design/mono-general-2/24/edit-icon.png" width="24" height="24" />
</div>
sshcrbum

sshcrbum3#

您可以通过两种方式完成此操作:

  • 标准弹性框方法。使用对齐项:center将文本放在中间但是有一个陷阱,如果有两个项堆叠在一起,并且顶部的图标是50像素宽,而下面的图标是80像素宽,那么居中对齐的元素可能无法正确地在顶部对齐。
  • 要确保元素100%位于中间,请使用3个div,并使用flex-grow:1来制作3个等宽的容器,然后使用边距将子元素定位到中心或右侧。

还可以看看stackoverflow的类似答案

.container {
  display: flex;
  width: 100%;
}

.container>div {
  flex-grow: 1;
  display: flex;
}

.container>div:nth-child(2)>p {
  margin-inline: auto;
}

.container>div:last-child>img {
  margin-left: auto;
}
<div class="container">
  <div></div>
  <div>
    <p>50%</p>
  </div>
  <div>
    <img src='https://placekitten.com/50/50' />
  </div>
</div>

相关问题