当前位置: 首页 > 知识库问答 >
问题:

两个垂直排列在图像旁边的div

臧弘和
2023-03-14

我想有一个头像图像,右边有两个垂直对齐的div。

https://jsbin.com/qafiroquve/1/edit?html,css,输出

我读过很多关于这方面的帖子,但似乎没有一篇对我有帮助。

将图像放在左侧的30%主div(标题)宽度和信息div的70%宽度的最佳方法是什么?

如果infodiv(nameposition)中的任何一个有太多文本,我希望infodiv与其左侧的图像垂直对齐。我还希望这个infodiv与图像有一个边距。

我尝试了很多选项:float:leftonavatardiv,display:inline blockonavatarinfo宽度:30%和40%。我不想使用bootstrap来实现这个目的,因为它使事情变得复杂,我想让它尽可能简单。

共有2个答案

关冠宇
2023-03-14

不幸的是,vertical align不能与float元素一起使用。您应该使用display:table cell或`display:inline block来满足您的要求。

请检查下面的代码。

.header {
  width: 500px;
  background: aqua;
  margin: 0 auto;
  padding: 10px;
  display: table;
}
.avatar img {
  width: 150px;
}
.avatar,
.info {
  display: table-cell;
  vertical-align: middle;
}
<div class="header">
  <div class="avatar">
    <img src="http://i.imgur.com/pBcut2e.jpg" />
  </div>
  <div class="info">
    <div class="name">Important person here</div>
    <div class="position">CHIEF DIGITAL STRATEGIST &amp CO-FOUNDER</div>
  </div>

</div>
胡厉刚
2023-03-14

您可以使用@w3debugger建议的表格单元格方式,也可以利用快速css技巧垂直对齐:

.yourclass{
    position:absolute;
    top: 50%;
    transform: translateY(-50%)
}

但这需要的父级。你的类位置:相对,并且是类型显示:块;如果你的父级是块,它将取其内部块的高度,所以化身,就是下一个到。你的类需要是显示:块以及,

我编辑了您的示例:

超文本标记语言:

<div class="header">
    <div class="avatar">
      <img src="http://i.imgur.com/pBcut2e.jpg" />
    </div><div class="info">
        <div class="name">Important person here </div>
        <div class="position">CHIEF DIGITAL STRATEGIST &amp CO-FOUNDER</div>
    </div>
</div>

CSS:

.header {
    width: 500px;
    background: aqua;
    margin: 0 auto;
    padding: 10px;  
    position: relative;
}
.avatar img {
  width: 30%;
  border-radius: 50%;
}
.info{
  box-sizing: border-box;
  padding: 0 40px;


  width: 70%;

  position:absolute;
  right: 0;

  vertical-align: top;
  top: 50%;
  transform: translateY(-50%)

}

现场预览:

https://jsbin.com/gogewefizo/1/edit?html,css,输出

 类似资料:
  • 问题内容: 为什么不行?但是, 确实 可以。 问题答案: 实际上,在这种情况下,这非常简单:对图像应用垂直对齐。由于所有内容都在同一行中,因此它实际上是要对齐的图像,而不是文本。 在FF3中测试。 现在,您可以将flexbox用于这种类型的布局。

  • 我试图创建一个网页的主横幅旁边的图像标题。我尝试做的一个示例可以在下面找到:https://optimaninja.com/ 我正在使用bootstrap,下面是一些我必须开始的简单初学者代码: 引导代码: 谢谢你的帮助。

  • 我使用GridPane作为舞台的主要场景,布局完全是在FXML文件中定义的。我想有一个按钮在窗口的整个边(即在我的GridPane的所有行上),如下所示: 然而,我就是不能让它工作。更确切地说,它似乎只是按钮不会增加整个高度。我已经为按钮设置了、和,但按钮仍然与其中的文本一样长,并且放在侧面的中心。 我如何使按钮延伸到整个网格窗格?正如开头提到的,我当然已经正确设置了。这并不是按钮没有正确地放置在

  • 问题内容: 垂直居中html图像旁边的文本的最佳和最简单的方法是什么?需要与浏览器版本/类型无关。纯HTML / CSS解决方案。 问题答案: 我总是退回到这个解决方案上。不太hack-ish并完成工作。 编辑:我应该指出,您可以使用以下代码来实现想要的效果(原谅内联样式;它们应该在单独的工作表中)。图像(基线)上的默认对齐方式似乎会导致文本对齐基线。至少在FireFox3中,将其设置为中值可以使

  • 问题内容: 我有一个包含图像和ap标签的div(如下所示)。我想根据段落的多少行在div的中间垂直对齐图像。垂直对齐不起作用。我现在正在使用JavaScript找出要添加到margin- top的数量,但是宁愿使用CSS。有任何想法吗? 问题答案: 尝试将元素的属性设置为图像的高度,例如: 编辑: 刚意识到我读错了问题,却错过了多行的事实。尝试的一种选择是完全删除元素,并将其设置为of的,使用的o

  • 问题内容: 我在div中垂直对齐图像时遇到问题 据我所知,我需要“显示:块;” 定位图像在中心,这是可行的。同样在教程中,我找到了很多答案,但它们并不是“有用的”,因为我的所有图像都不在同一高度! 问题答案: 如果容器中的高度固定,则可以将line-height设置为与高度相同,并且它将垂直居中。然后只需添加text-align使其水平居中即可。 编辑 您的代码应如下所示: 更新 现在是2016年