为了账号安全,请及时绑定邮箱和手机立即绑定

强制弹性项目跨越整个行宽

强制弹性项目跨越整个行宽

不负相思意 2019-11-19 11:15:54
我试图将前两个子元素保留在同一行中,而第三个元素以全宽度保留在自己的下面,所有这些都使用flex。我对在前两个元素上使用flex-grow和flex-shrink属性特别感兴趣(这是我不使用百分比的原因之一),但是第三个元素确实必须为全角且在前两个元素以下。当发生错误并且我无法更改代码时,以label编程方式将元素添加到text元素之后。如何强制label元素在使用flex定位的其他两个元素下方跨越100%的宽度?.parent {  display: flex;  align-items: center;  width: 100%;  background-color: #ececec;}.parent * {  width: 100%;}.parent #text {  min-width: 75px;  flex-shrink: 2.25;}<div class="parent">  <input type="range" id="range">  <input type="text" id="text">  <label class="error">Error message</label></div>
查看完整描述

2 回答

?
眼眸繁星

TA贡献1873条经验 获得超9个赞

每当您希望弹性项目占据整个行时,请将其设置为width: 100%/ flex-basis: 100%,然后wrap在容器上启用它。


现在,该物品会消耗所有可用空间。兄弟姐妹被迫移至其他行。


.parent {

  display: flex;

  flex-wrap: wrap;

  align-items: center;

  background-color: #ececec;

}


.error {

  flex: 0 0 100%; /* fg: 0, fs: 0, fb: 100% */

  border: 1px dashed red;

}


#range, #text {

  flex: 1;

}

<div class="parent">

  <input type="range" id="range">

  <input type="text" id="text">

  <label class="error">Error message</label>

</div>


查看完整回答
反对 回复 2019-11-19
?
潇潇雨雨

TA贡献1833条经验 获得超4个赞

您似乎在寻找min-width孩子和flex-wrap:wrap父母:


.parent {

   display: flex;

   align-items: center;

   flex-wrap: wrap;

}


.parent > * {

  flex-grow: 1;

}


.parent > .error {

  min-width: 100%;

  background-color: rgba(255,0,0,.3);

}

<div class="parent">

  <input type="range" id="range">

  <input type="text" id="text">

  <label class="error">Error message</label>

</div>


查看完整回答
反对 回复 2019-11-19
  • 2 回答
  • 0 关注
  • 519 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信