html - 在 div 内垂直对齐 div,以及

标签 html css

我正在尝试创建一个 div,然后在 div 中将日期放在左侧,将两个图标放在右侧。两者都应该垂直居中,边缘有一些边距,父 div 中的其他元素之间有边距。但是现在当我运行它时,图标最终会出现在奇怪的位置,经常会从 div 中剪掉。

.c-project-bar {
  width: 355px;
  height: 30px;
  display: table;
  padding: 0px 10px;
  background-color: #ffffff;
}

.c-project-date {
  display: table-cell;
  vertical-align: middle;
  color: #828282;
  font-size: 14px
}

.c-project-github-icon {
  margin-left: 10px;
  background-color: #000000;
  height: 25px;
  width: 25px;
  float: right;
  vertical-align: middle;
  display: table-cell;
}
<div class="c-project-bar">
  <p class="c-project-date">Aug, 2017</p>
  <span class="c-project-github-icon"></span>
  <span class="c-project-github-icon"></span>
</div>

https://jsfiddle.net/enyzhxyz/

编辑:

每个人的答案都很棒,似乎主要问题是

继承了 { margin: 0px; },它给每个人的解决方案都带来了麻烦。我通过包含一个 margin: initial 来解决这个问题,然后再使用任何 margin 样式,所以它首先删除了 { margin: 0px; } 然后添加我想要的那个。

最佳答案

当你给 float: right 时,你不能垂直居中。相反,使用内联 block 技术:

.c-project-bar {
  width: 355px;
  padding: 0px 10px;
  background: #ccf;
}
.c-project-date, .c-project-icons {
  display: inline-block;
  width: 48%;
  vertical-align: middle;
}
.c-project-icons {
  text-align: right;
}
.c-project-github-icon {
  margin-left: 10px;
  background-color: #000000;
  height: 25px;
  width:25px;
  display: inline-block;
  vertical-align: middle;
}
<div class="c-project-bar">
  <p class="c-project-date">Aug, 2017</p>
  <div class="c-project-icons">
    <span class="c-project-github-icon"></span>
    <span class="c-project-github-icon"></span>
  </div>
</div>

我会建议您使用 transformposition 居中技术,但对于此解决方案来说,这太过分了。我给了一些背景颜色,看它是完全垂直对齐中间的。虽然它使用了稍微额外的标记,但这也是适用于不支持 flexbox 的浏览器的正确方法。

关于html - 在 div 内垂直对齐 div,以及,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45465168/

相关文章:

javascript - 放大或缩小时对齐列表项

JavaScript Canvas 通用drawImage

javascript - Bootstrap 导航栏从静态到固定的饮食内容/抖动效果

javascript - 当通过 JavaScript 添加固定位置时,粘性 div 会切换两侧

javascript - 使图像占据 100% 的高度,但不是 100% 的高度(并在缩小时保持图像相同的尺寸)

html - tomcat 服务器上的基本 angularJs 指令

css - 悬停时如何使链接具有戴手套的鼠标

html - 更少的 mixin 或选择器根据兄弟索引改变位置?

html - CSS背景颜色不粘

html - Flexbox 模式 1/3/3 列和行组合