html - 使 flexbox 匹配其父级的宽度

标签 html css flexbox

<分区>

我正在努力实现这个特定的设计,但运气不佳:

enter image description here

黑框应该控制#container的宽度(黄色边框)。 然后,#flex 的容器(包含红色 div 的 flexbox)将调整大小以匹配其父级的尺寸。

我想出的代码如下:

#container {
  border: 4px solid #f1c40f;
  font-family: Tahoma;
  color: white;
}
#title {
  padding: .5em .75em;
  background: #2c3e50;
  display: inline-flex;
}
#flex {
  display: flex;
}
#icon {
  background: #c0392b;
  padding: .5em .75em;
}
#content {
  background: #e74c3c;
  padding: .5em .75em;
}
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width">
  <title>JS Bin</title>
</head>
<body>
  <div id="container">
    <div id="title">I should set the width of the container!</div>
    <div id="flex">
      <div id="icon">
        icon
      </div>
      <div id="content">
        Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent eu eleifend sem. Cras elit odio, faucibus vel tortor nec, lacinia accumsan enim. Aenean eget vulputate ante. Integer quis condimentum magna. Suspendisse potenti. Suspendisse imperdiet eget magna vitae rhoncus. Vestibulum fringilla accumsan accumsan. Duis facilisis lobortis scelerisque. Pellentesque at erat porta, scelerisque nisl in, volutpat sem. Nulla facilisi. Phasellus enim augue, tempus et facilisis id, lobortis eu urna. Aenean volutpat risus dolor, ac volutpat enim euismod ac. Ut id rutrum felis.
      </div>
    </div>
  </div>
</body>
</html>

正如您在代码片段中看到的,#flex 使 #container 比应有的更宽。我尝试了 #container {display: inline-flex;},我尝试应用 flex-basis: 0%;flex-shrink: 1; 给 flexbox 的 child ,但似乎没有什么可以改变这种行为。

如何让 #flex 匹配 #title 的宽度?

谢谢!

最佳答案

也许你应该修改你的容器:

#container {

  display:flex;
  flex-direction: column;

  border: 4px solid #f1c40f;
  font-family: Tahoma;
  color: white;
}

然后你可以给容器一个宽度

http://jsbin.com/vufolodowe/edit?html,css,output

关于html - 使 flexbox 匹配其父级的宽度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49751212/

上一篇:html - 基于内容的高度相等的CSS类

下一篇:javascript - 当菜单打开时,如何将类添加到页面主体?

相关文章:

javascript - 为什么这个jquery简单传输效果不起作用?

html - 使用 angular 2 组件中的 window.print() 将 CSS 类应用于打印窗口的 html 内容

html - Top Margin 并不像我预期的那样.. 为什么?

javascript - 创建一个按钮以在样式的行和列之间切换 flex-direction

html - 如何反转媒体查询中元素的顺序?

javascript - 将外部 html 包含到 enduro.js 中

javascript - 元素存在于 Chrome 开发工具中但不在查看源代码中 - 这怎么可能?

javascript - 我如何正确处理对下拉菜单的任何更改操作?

html - 如何防止不需要的元素在 CSS 中悬停时移动?

html - Flexbox:水平和垂直居中