怎样让子元素高度撑满父元素高度?

发布于 2022-09-01 18:34:51 字数 529 浏览 15 评论 0

.row{
    display: block;
    font-size: 0;
}
.col{
    display: inline-block;
    vertical-align: top;
    font-size: 14px;
}
<div class="row">
    <div class="col">
        main
    </div>
    <div class="col" style="width:0;height:100%;border-right:solid 1px grey;"></div>
    <div class="col">
        sidebar
    </div>
</div>

我想在main和sidebar之间添加1px的分割线,并且高度是父元素的100%(main和sidebar高度较大的那个),但是设置height:100%;好像不行,不知道怎样才行呢?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

那伤。 2022-09-08 18:34:51

那是因为row 是没有高度的 。你在row设置一个 overflow:hidden 就好

半葬歌 2022-09-08 18:34:51

因为父元素没有设置高的话.子是无法得知的.100%就没用. 你这样完全就是加一条边框就行了

故事未完 2022-09-08 18:34:51

首先不要为了加个分隔线,就增加无意义的标签。可以使用 css3 选择器、伪元素等。

例如

.col:first-child:after {
  content: '';
  display: block;
  width: 0;
  height: 100%;
  border: solid 1px grey;
}

其次,这种 row col 的方式不指定高度的,经常两个挨着的 col 高度不一样,

因此分割线没有意义,要不然固定他们的高度,要不然用别的方式。

row col 更多的是用来布局的,你这里的需求我觉得用 ul li 就行了。

情绪 2022-09-08 18:34:51

在父元素写几个绝对定位的span,高度100%,宽度1px,模拟为1px的边框,亲测可用!

甜尕妞 2022-09-08 18:34:51

我是用height:auto;成功的······

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文