Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Forms 改变flexbox容器的高度会将布局拧紧_Forms_Layout_Flexbox_Height_Contact - Fatal编程技术网

Forms 改变flexbox容器的高度会将布局拧紧

Forms 改变flexbox容器的高度会将布局拧紧,forms,layout,flexbox,height,contact,Forms,Layout,Flexbox,Height,Contact,我试图制作一个完全响应的2列联系人表单,但是如果我更改容器的高度(在我的示例中是窗口),那么它会破坏盒子的孔布局。如果我改变宽度,它可以正常工作 以下是指向钢笔的链接: HTML: 我的目标是拥有一个好的响应性联系人表单,可能还具有更改文本区域大小的能力,并且整个联系人表单都能适应它 如果能在布局问题上得到一些帮助,或者有一些我可以做得更好的想法,我将非常感激 <form> <div id="form-flex-container"> <div clas

我试图制作一个完全响应的2列联系人表单,但是如果我更改容器的高度(在我的示例中是窗口),那么它会破坏盒子的孔布局。如果我改变宽度,它可以正常工作

以下是指向钢笔的链接:

HTML:

我的目标是拥有一个好的响应性联系人表单,可能还具有更改文本区域大小的能力,并且整个联系人表单都能适应它

如果能在布局问题上得到一些帮助,或者有一些我可以做得更好的想法,我将非常感激

<form>
  <div id="form-flex-container">
    <div class="form-flex-item">
      <div class="inputContainer">
        <input id="name" class="inputs" type="text" name="name" placeholder="Name">
        <span class="formBorder"></span>
      </div>
    </div>
    <div class="form-flex-item">
      <div class="inputContainer">
        <input id="replyto" class="inputs" type="email" name="_replyto" placeholder="E-Mail">
        <span class="formBorder"></span>
      </div>
    </div>
    <div class="form-flex-item">
      <div class="inputContainer">
        <input id="submit" class="inputs" type="submit" value="Send">
        <span class="formBorder"></span>
      </div>
    </div>
    <div class="form-flex-item">
      <div class="inputContainer">
        <textarea id="message" class="inputs" name="nachricht" placeholder="Ihre Nachricht ..."></textarea>
        <span class="formBorder"></span>
      </div>
    </div>
  </div>
</form>
$durationOfAnim: 0.8s;

html, body {
  height: 100vh;
  background: linear-gradient(hsl(99°, 90%, 61%), hsl(99°, 90%, 70%));
}

form {
  height: 100%;
  width: 100%;
}

#form-flex-container {
  height: 100%;
  display: flex;
  flex-direction: column;
  flex-wrap: wrap;

  justify-content: space-between;
  align-content: space-around;
}

#form-flex-container > .form-flex-item {
  width: 50%;
  flex-basis: 40%;
  padding: 5px;
  &:nth-child(3) {
    flex-basis: 20%;
  }
  &:last-child {
    flex-basis: 100%;
  }
  @media only screen and (max-width: 600px){
    width: 100%;
    flex-basis: auto;
    flex: 1;
    &:first-child {
      order: 1;
    }
    &:nth-child(2) {
      order: 2;
    }
    &:nth-child(3) {
      order: 4;
      flex: 0.5;
    }
    &:last-child {
      order: 3;
      flex: 3;
    }
  }
}

.inputContainer {
  position: relative;
  height: 100%;
  width: 100%;
}

.inputs {
  height: 100%;
  width: 100%;
  border: none;
  border-radius: 5px;
  box-shadow: 2px 2px 6px rgba(0,0,0,0.1);
  transition: box-shadow $durationOfAnim/4;
  padding: 10px;
  &:focus {
    outline: none;
    box-shadow: 2px 2px 6px rgba(0,0,0,0.3);
    transition: box-shadow $durationOfAnim;
    &~.formBorder {
      width: 100%;
      transition: width $durationOfAnim;
    }
  }
}

#submit {
  height: 100%;
  &:hover {
    outline: none;
    box-shadow: 2px 2px 6px rgba(0,0,0,0.3);
    transition: box-shadow $durationOfAnim;
    &~.formBorder {
      width: 100%;
      transition: width $durationOfAnim;
    }
  }
}

#message {
  resize: none;  
}

.formBorder {
  position: absolute;
  bottom: 0;
  left: 0;
  border-radius: 3px;
  width: 0;
  height: 3px;
  border: none;
  background-color: green;
  transition: width $durationOfAnim/4;
}