如何在具有理由内容中心的flexbox div中将输入拉伸到100%

时间:2019-05-08 15:40:16

标签: html css

如果不做类似width: 150%

的操作,我将无法获得以下代码段中的输入内容以扩展到包含按钮的100%

.explore__column,
.explore__row {
  display: flex;
}

.explore__row {
  flex-direction: row;
  flex: 1 1;
}

.search-box__item {
  display: flex;
  flex-direction: column;
  justify-content: center;
  flex: 1 1;
  margin-right: 3.75rem!important;
  margin-bottom: 3.75rem!important;
  width: 0;
  border: 1px solid rgba(33, 33, 33, .4);
  align-items: center;
  border-radius: 5px;
  background: transparent;
  background: #fff;
  cursor: pointer;
}

.search-box__item.search-box__active {
  border-top: 2px solid #4f9bc9;
  box-shadow: 0 2px 20px 0 rgba(0, 0, 0, .12);
}

.search-box__item {
  display: flex;
  flex-direction: column;
  justify-content: center;
  flex: 1 1;
  margin-right: 3.75rem!important;
  margin-bottom: 3.75rem!important;
  width: 0;
  border: 1px solid rgba(33, 33, 33, .4);
  align-items: center;
  border-radius: 5px;
  background: transparent;
  background: #fff;
  cursor: pointer;
}
<div class="explore__row"><button class="search-box__item search-box__active" type="button"><div class="search-box__translate"><svg viewBox="0 0 30 30" style="overflow: visible;"><use xlink:href="#icon-Plan" style="overflow: visible;"></use></svg></div><div class="search-box__fade
"><input type="text" autocomplete="off" class="input__default form-control" placeholder="search Plans"></div><h2>One</h2></button><button class="search-box__item" type="button"><div class="search-box__translate"><svg viewBox="0 0 30 30" style="overflow: visible;"><use xlink:href="#icon-BusinessUnit" style="overflow: visible;"></use></svg></div><div class="search-box__fade"><input type="text" autocomplete="off" class="input__default form-control" placeholder="search Business Units"></div><h2>Two</h2></button>
</div>

2 个答案:

答案 0 :(得分:0)

flex-direction: column元素中删除.search-box__item。并添加以下代码段:

.search-box__item {
    flex-wrap: wrap;
}

.search-box__fade {
    width: 100%;
}

input {
    width: 100%;
    box-sizing: border-box;
}

答案 1 :(得分:0)

  1. 您不能在按钮元素内使用<div>(为什么在这种情况下首先要使用按钮?每次单击该按钮都会使内容摆动)
  2. 只需在输入及其父项上添加100%的宽度,并添加box-sizing: border-box以便同时考虑填充。

.explore__column,
.explore__row {
  display: flex;
}

.explore__row {
  flex-direction: row;
  flex: 1 1;
}

.search-box__item {
  display: flex;
  flex-direction: column;
  justify-content: center;
  flex: 1 1;
  margin-right: 3.75rem!important;
  margin-bottom: 3.75rem!important;
  width: 0;
  border: 1px solid rgba(33, 33, 33, .4);
  align-items: center;
  border-radius: 5px;
  background: transparent;
  background: #fff;
  cursor: pointer;
  padding: 0 10px;
}

.search-box__item.search-box__active {
  border-top: 2px solid #4f9bc9;
  box-shadow: 0 2px 20px 0 rgba(0, 0, 0, .12);
}

.search-box__item {
  display: flex;
  flex-direction: column;
  justify-content: center;
  flex: 1 1;
  margin-right: 3.75rem!important;
  margin-bottom: 3.75rem!important;
  width: 0;
  border: 1px solid rgba(33, 33, 33, .4);
  align-items: center;
  border-radius: 5px;
  background: transparent;
  background: #fff;
  cursor: pointer;
}

.search-box__fade,
input {
  width: 100%;
  box-sizing: border-box;
}
<div class="explore__row">
  <div class="search-box__item search-box__active" type="button">
    <div class="search-box__translate">
      <svg viewBox="0 0 30 30" style="overflow: visible;"><use xlink:href="#icon-Plan" style="overflow: visible;"></use></svg>
    </div>
    <div class="search-box__fade">
      <input type="text" autocomplete="off" class="input__default form-control" placeholder="search Plans"></div>
    <h2>One</h2>
  </div>
  <div class="search-box__item" type="button">
    <div class="search-box__translate">
      <svg viewBox="0 0 30 30" style="overflow: visible;"><use xlink:href="#icon-BusinessUnit" style="overflow: visible;"></use></svg>
    </div>
    <div class="search-box__fade">
      <input type="text" autocomplete="off" class="input__default form-control" placeholder="search Business Units">
    </div>
    <h2>Two</h2>
  </div>
</div>