html - 带有背景图像的空子 div 占据父 div 高度的 100%

标签 html css

发现强制子 div 占据其背景图像的完整高度并不是一件容易的事。 有六个强制性条款:

  1. 两个 div 的确切高度均未知
  2. 子 div 为空
  3. 背景图片大小:封面
  4. 显示:flex
  5. 没有 JavaScript
  6. 这是一个列表项(因此不能全屏)

.item { 
  display: flex; 
  border: 1px solid red; 
  height: 100%; 
}
.inner { 
  background: url('https://images.unsplash.com/photo-1504608524841-42fe6f032b4b?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=701&q=80') center center / cover no-repeat; 
  border: 1px solid blue;
  width: 100%;
  height: 100%;
}
<div class='item'>
  Inner content
  <div class='inner'></div>
</div>

在 SO 上发现的所有类似问题均未通过全部或部分条款。
如果您有任何想法(尤其是来自网格专家的想法),我们将不胜感激。

最佳答案

要让图像确定内部 div 的高度(就像它是 元素一样),请使用它。

.item { 
  display: flex; 
  border: 1px solid red; 
  height: 100%; 
}

.inner { 
  border: 1px solid blue;
}

.inner::before {
  font-size:0;
  content: url('https://images.unsplash.com/photo-1504608524841-42fe6f032b4b?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=701&q=80');
  display:block;
}
<div class='item'>
  <div class='inner'></div>
</div>

请注意,这回答了问题正文第一句中的问题,与标题中的问题不同。

关于html - 带有背景图像的空子 div 占据父 div 高度的 100%,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55414060/

相关文章:

html - 如何在输入表单顶部对齐标签?

javascript - HTML5 从中心点旋转图像

javascript - 修改jQuery插件: Treeview script to expand and collapse function -> exclude area

javascript - 动态创建具有绝对位置的div,单击时可以扩展到整个屏幕

javascript - Sitemesh 出现 ERR_CONTENT_LENGTH_MISMATCH 错误

php - 将下拉选择的值拆分为两个变量? (PHP/HTML)

php - 如何获取数据库中的数据并显示在 View 中的 "select"下拉列表中 (Codeigniter)

html - CSS <nav> 分为 2 列。没有 <ul> 或 <ol>

javascript - 当用户将鼠标悬停在两个 div 之一上时,如何让 div 显示特定图像?

CSS 将样式应用于空输入([值 =''])