如何拉伸 flex child 以使背景颜色与兄弟姐妹的高度匹配

Posted

技术标签:

【中文标题】如何拉伸 flex child 以使背景颜色与兄弟姐妹的高度匹配【英文标题】:How to stretch flex child so that background color matches the height of sibling 【发布时间】:2017-06-16 20:15:54 【问题描述】:

我在li 中有两个链接,一个带有可短可长的文本,另一个是图标。图标的background-color 应与文本链接的高度匹配,而文本应具有定义的填充。它不一定是 flexbox,我只是认为它应该更容易。

http://codepen.io/anon/pen/GrQZKN

li 
  display: flex;
  justify-content: space-between;
  align-items: center;
  .first 
    background-color: #333;
    padding: 20px;
    color: #fff;
    flex: 1;
  
  .second 
    background-color: orange;
    align-items: stretch;
    display: flex;
  


<ul>
  <li>
    <a href="#" class="first">Link</a>
    <a href="#" class="second">(icon)</a>
  </li>
  <li>
    <a href="#" class="first">Longer LongerLonger Longer link</a>
    <a href="#" class="second">(icon)</a>
  </li>
</ul>

【问题讨论】:

【参考方案1】:

您只需执行以下操作:

    li 中删除align-items: center(用于拉伸second

    li.second 中将align-items: stretch 替换为align-items: center(用于垂直对齐

请看下面的演示:

body 
  max-width: 300px;
  background-color: #ddd;


li 
  display: flex;
  justify-content: space-between;
  /*align-items: center;*/
  border-bottom: 1px solid #eee;

li .first 
  background-color: #333;
  padding: 20px;
  color: #fff;
  flex: 1;

li .second 
  background-color: orange;
  align-items: center; /*CHANGED THIS*/
  display: flex;
<ul>
  <li>
    <a href="#" class="first">Link</a>
    <a href="#" class="second">(icon)</a>
  </li>
  <li>
    <a href="#" class="first">Longer LongerLonger Longer link</a>
    <a href="#" class="second">(icon)</a>
  </li>
</ul>

【讨论】:

以上是关于如何拉伸 flex child 以使背景颜色与兄弟姐妹的高度匹配的主要内容,如果未能解决你的问题,请参考以下文章

Flex - Baseline,水平子对齐内容,拉伸子框

目标子元素样式组件

如何在 Flutter 中拉伸图像以适合整个背景(100% 高度 x 100% 宽度)?

flex

FLEX:如何在Flare3d中设置场景的背景颜色?

html 如何让背景图片充满全图,就是拉伸