html - 仅使用 CSS 不使用 JS 设置子级到父级 div 的高度

标签 html css

<分区>

我正在尝试将子 div 高度设置为父 div 的 100%。由于它是一种样式,我不想使用 JS/JQ,这应该在 CSS 中完成。这是 Link of Code这是片段:

HTML:

<div class="a">
  <div class="c"></div>
  <div class="b"></div>
</div>

CSS:

.a{
  float: left;
  background: red;
  padding-right: 1px;
  height: 100%;
}
.b{
  position: relative;
  float: left;
  background: blue;
  display: table;
  height: 100%;
  width: 29px;
}
.c{
  height: 300px;
  width: 90px;
  background: grey;
  float: left;
}

请不要使用Position: Absolute/Relative,在我当前的代码结构中这不是我的选择

最佳答案

height:100% 仅在父元素的高度已知(和/或可计算)的情况下才对元素起作用。

如果 .a 的父级没有指定/继承的高度,则 height: 100% 对其没有影响(因此, .b 上的 height: 100% 也没有效果,因为 .a 没有指定/可计算的高度。

或者,您可以使用 flexbox 非常轻松地做到这一点(浏览器支持 IE10+ 和其他一切):

.a{
  float: left;
  background: red;
  padding-right: 1px;
  display: flex;
}
.b{
  background: blue;
  width: 29px;
}
.c{
  height: 300px;
  width: 90px;
  background: grey;
}
<div class="a">
  <div class="c">c</div>
  <div class="b">b</div>
</div>

关于html - 仅使用 CSS 不使用 JS 设置子级到父级 div 的高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29566247/

上一篇:html - 当我将鼠标移到链接上时,平滑淡出消失了

下一篇:html - 让 % 为 flex 元素的子元素正常工作

相关文章:

html - 增加浏览器大小后如何显示div?

javascript - "Starting"iframe不改变html内容

javascript - react 如何在空时显示标签

javascript - 如何在 iPad 中为 websheet 分配单独的 css

css - 如何将主机组件的 CSS 类传递给子组件?

html - 居中和右对齐flexbox元素

javascript - 粘性导航栏在滚动到顶部时更改文本/背景颜色,.addclass 不起作用?

php - 如果字段已完成(不是验证),则仅发送表单(获取)数据

html - 打印预览表堆叠不良?

javascript - anchor 标签从一个页面到另一个页面的平滑滚动目标问题