我正在将动态图像拉到一个2列布局中。如果只有一个图像,如何将其居中,或将列折叠为一个?目前,在左栏中放置了一个图像。只有CSS的解决方案吗?
如果列中的最后一项是其行中的唯一项,那么相同的逻辑是否适用于该列中的最后一项?

p{
  column-count: 2;
  column-gap: 0;
}

p>img{
  display: block;
  width: 100%;
  height: auto;
  border: 3px solid transparent;
  box-sizing: border-box;
}

由于Eric N的回答和列跨度,下面添加的CSS将第一个也是唯一一个项目集中在两列布局中:
p>img:first-of-type:last-of-type{
  column-span: all;
  margin: auto;
  width: 50%;
}

此外,要以两列布局中的最后一项为目标,如果它是其行中的唯一项,我现在使用:
p>img:nth-child(odd):last-of-type{
  column-span: all;
  margin: auto;
  width: 50%;
}

最佳答案

你的标记和css会有很大帮助。但是,如果没有它,您可能只能通过使用以下命令来瞄准单个元素:

img:first-of-type:last-of-type {
    /* centering styles */
}

编辑:
在看到css之后,这变得非常棘手我想出了一个卑鄙的伎俩:
p>img:first-of-type:last-of-type {
  position: absolute;
  left: 50%;
  width: 50%;
  transform:translateX(-50%);
}

这就完成了任务…除了p元素之后没有高度,因为里面没有任何东西是静态的。我也看不出一个明显的方法来解决它。也许有人可以借鉴这个想法?

关于html - 在多列布局中唯一的元素时如何居中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40921259/

10-11 12:53