html - 显示 :inline-block and pseudo-element to do Vertically placed

标签 html css

我正在使用 display:inline-block 和伪元素(::before, ::after)来做 [vertically-middle] 但是不行,伪元素会占一行 即使 width0,我也不知道为什么?

我知道其他方法(比如 flexpositionline-height...) 我只是好奇,这有什么问题? 谢谢大家。下面或这里的演示:https://jsfiddle.net/pm06tkjs/

.container{
  height: 200px;
  background: rgba(0, 0, 0, 0.2);
}

.container::before {
  content: '';
  display: inline-block;
  width: 0;
  height: 100%;
  vertical-align: middle;
}

.img-group {
  display: inline-block;
  vertical-align: middle;
}

img {
  display: inline-block;
  margin-right: -4px;
  max-width: 20%;
  height: auto;
}
<div class="container">
  <div class="img-group">
    <img src="https://www.penghu-nsa.gov.tw/FileDownload/Album/Big/20161012162551758864338.jpg" alt="">
    <img src="https://www.penghu-nsa.gov.tw/FileDownload/Album/Big/20161012162551758864338.jpg" alt="">
    <img src="https://www.penghu-nsa.gov.tw/FileDownload/Album/Big/20161012162551758864338.jpg" alt="">
    <img src="https://www.penghu-nsa.gov.tw/FileDownload/Album/Big/20161012162551758864338.jpg" alt="">
    <img src="https://www.penghu-nsa.gov.tw/FileDownload/Album/Big/20161012162551758864338.jpg" alt="">
  </div>
</div>

最佳答案

内联元素之间的默认边距是个问题!为了解决这个问题,请为您的内联元素父级添加 font-size:0

.container{
  height: 200px;
  background: rgba(0, 0, 0, 0.2);
  font-size:0;
}

.container::before {
  content: '';
  display: inline-block;
  width: 0;
  height: 100%;
  vertical-align: middle;
}

.img-group {
  display: inline-block;
  vertical-align: middle;
  font-size:0;
}

img {
  display: inline-block;
  max-width: 20%;
  height: auto;
}
<div class="container">
  <div class="img-group">
    <img src="https://www.penghu-nsa.gov.tw/FileDownload/Album/Big/20161012162551758864338.jpg" alt="">
    <img src="https://www.penghu-nsa.gov.tw/FileDownload/Album/Big/20161012162551758864338.jpg" alt="">
    <img src="https://www.penghu-nsa.gov.tw/FileDownload/Album/Big/20161012162551758864338.jpg" alt="">
    <img src="https://www.penghu-nsa.gov.tw/FileDownload/Album/Big/20161012162551758864338.jpg" alt="">
    <img src="https://www.penghu-nsa.gov.tw/FileDownload/Album/Big/20161012162551758864338.jpg" alt="">
  </div>
</div>
有关如何删除内联元素之间间隙的更多详细信息,请查看 here

关于html - 显示 :inline-block and pseudo-element to do Vertically placed,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56862709/

相关文章:

css - 适应所有分辨率的导航

javascript - 如何从图像源字符串中获取源的一部分?

html - 绝对 div 内的绝对 div 相对于相对位置截断

仅在滚动后的 Javascript 固定顶部导航栏

python - 如何在一行中对齐跨度

css - Bootstrap 4 网格 - 左侧 3 个堆叠列,右侧 1 个

html - Safari 100% 宽度和高度

css - 预加载屏幕外的图像 - Android 浏览器

javascript - 需要修改 HTML 重定向脚本帮助以显示重定向 url 而不是重定向

php - 没有表单的提交按钮