css - 如何在使用float时拉伸(stretch)子元素的背景颜色,使其与父元素具有相同的高度?

标签 css

请帮助 Java 人员解决一个简单的 CSS 问题。试了好几个小时都没找到解决问题的合适方法:如何在使用 float 时拉伸(stretch)子元素的背景颜色,使其与父元素具有相同的高度?我敢打赌它与 display:flex 有关,但我无法让它工作 :-/

这是代码:https://jsfiddle.net/bycor29w/

目标:无论包含多少文本,右边栏的背景色都必须填充到与中间栏相同的高度

要求:必须使用float

StackOverflow 要求:“指向 jsfiddle.net 的链接必须附有代码”,所以给你:

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
</head>
<body>
<style>
    div {
        border: 1px #000 solid;
    }

    .container {
        height: 100%;
        width:980px;
        float:left;
        display: flex;
    }

    .left {
        width: 200px;
        float: left;
    }

    .mid{
        padding-top: 1px;
        width: 560px;
        float: left;
    }

    .right {
        background: #d8d8d8 repeat-y bottom right;
        padding: 0 20px;
        height:100%;
        align-self: center;
        flex: 1;
        width: 180px;
        float: left;
    }
</style>

<div class="container">
    <div class="left">
        asdf<br>
        asdf<br>
        asdf<br>
    </div>
    <div class="mid">
        asdf<br>
        asdf<br>
        asdf<br>
        asdf<br>
        asdf<br>
        asdf<br>
    </div>
    <div class="right">
        asdf
    </div>
</div>

</body>
</html>

最佳答案

首先,Flexbox 会覆盖 float ...如果你想使用 float ...不要使用 flexbox。

您似乎想要的可以使用 CSS 表格来实现....如果绝对必要,您仍然可以使用 float 。

* {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}
div {
  border: 1px #000 solid;
}
.container {
  width: 580px;
  display: table;
  overflow: auto;
  vertical-align: top;
}
.left {
  width: 100px;
  float: left;
  display: table-cell;
  vertical-align: top;
}
.mid {
  padding-top: 1px;
  width: 370px;
  float: left;
  display: table-cell;
  vertical-align: top;
}
.right {
  background: lightblue;
  width: 100px;
  display: table-cell;
  vertical-align: top;
}
<body>
  <div class="container">
    <div class="left">
      asdf
      <br>asdf
      <br>asdf
      <br>
    </div>
    <div class="mid">
      asdf
      <br>asdf
      <br>asdf
      <br>asdf
      <br>asdf
      <br>asdf
      <br>
    </div>
    <div class="right">
      asdf
    </div>
  </div>

</body>

关于css - 如何在使用float时拉伸(stretch)子元素的背景颜色,使其与父元素具有相同的高度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34623054/

相关文章:

html - 第二个 flex 元素的元素也应该并排排列

html - 如何在 Twitter Bootstrap 中将导航下拉菜单居中?

html - 如何让我的 css 仅应用于一个页面而不是所有页面

jquery - 网页的 Apple 触摸事件

CSS 图像裁剪

html - 隐藏切换按钮内的复选框

html - 没有 Visual w/MP3 Colorbox 链接?

jQuery 在鼠标悬停时水平滚动文本

css - 防止由于滚动条而重新布局

css - 在动态元素的右上角显示图像