CSS 表单的网格布局

CSS Grid layout for a form

我有一个名为 main-filter 的 div,在 div 中,我有两个 div。现在,我想创建一个带有按钮、标签和输入的表单,我想在表单中放置两个 div,它应该看起来像下面的屏幕截图。我有 HTML 和 CSS 代码,但它不起作用,无法弄清楚如何使用 CSS 网格。我也需要让它响应!我是 CSS grid 的新手,非常感谢任何帮助。谢谢。

.main-filter {
  display: flex;
  margin: 0px;
  padding: 20px;
  height: 90px;
  background-color: #eff0f2;
  color: #287993;
  margin-bottom: 3rem;
}

.main-header__left {
  display: grid;
  grid-template-columns: auto 1fr;
  grid-gap: 0.3em 0.6em;
  grid-auto-flow: dense;
  align-items: center;
  float: left;
  margin-left: 250px;
  margin-right: 200px;
}

.main-header__right {
  display: grid;
  grid-template-columns: auto 1fr;
  grid-gap: 0.3em 0.6em;
  grid-auto-flow: dense;
  align-items: center;
  float: right;
}

.filter-button1 {
  background: #38acd2;
  color: #FFFFFF;
  max-width: 380px;
  min-width: 370px;
  min-height: 35px;
  font-weight: bold;
}

input,
button {
  grid-column: 2 / 4;
  width: auto;
  margin: 0;
}

input {
  width: 370px;
  height: 30px;
  border: 1px solid #38acd2;
}
<div className="main-filter">

  <form onSubmit={this.addItem}>
    <div className="main-header__left">
      <label className="start-timestamp">Start Timestamp: </label>

      <input type="text" ref={(input4)=> this.input4 = input4} className="input-item" id="addInput3" placeholder="Ex. 2019-1-12" />
      <label className="source-ip-address">Source IP Address: </label>
      <input type="text" name="source" ref={(input1)=> this.input1 = input1} className="input-item" id="addInput3" placeholder="127.0.0.1 " />

      <label className="service">Service Name: </label>
      <input type="text" name="service" ref={(input3)=> this.input3 = input3} className="input-item" id="addInput3" placeholder="Ex. Facebook or Whatsapp *" required />


    </div>


    <div className="main-header__right">
      <label className="end-timestamp">End Timestamp: </label>
      <input type="text" ref={(input5)=> this.input5 = input5} className="input-item" id="addInput3" placeholder="Ex. 2019-1-12" />

      <label className="destinatin-ip-ddress">Destination IP Address: 
      </label>
      <input type="text" name="destination" ref={(input2)=> this.input2 = input2} className="input-item" id="addInput3" placeholder="127.0.0.1 " />


      <button type="submit" className="filter-button1">Apply 
      Filters</button>


    </div>


  </form>



</div>

css网格形式图片截图,

尝试使用下面的代码,我已经修改了 HTML 和 CSS 代码,希望这可以帮助您达到预期的结果。

.main-filter {
  /* margin: 0px; */
  /* padding: 20px; */
  height: 90px;
  background-color: #eff0f2;
  color: #287993;
}

form {
  display: grid;
  grid-template-columns: auto auto;
  grid-gap: 15px;
}

.main-header__left>div,
.main-header__right>div {
  display: flex;
}

.main-header__left>div>label,
.main-header__right>div>label {
  width: 40%;
}

@media only screen and (max-width: 500px) {
  /* .main-header__left {
    grid-area: 2 / span 1;
    grid-gap: 0;
  } */
  .main-header__right {
    grid-area: 2 / span 1;
    grid-gap: 0;
  }
}

.filter-button1 {
  background: #38acd2;
  color: #FFFFFF;
  min-height: 35px;
  font-weight: bold;
  border: none;
  margin-top: 18px;
  width: 100%;
}

input {
  width: 100%;
  height: 30px;
  border: 1px solid #38acd2;
}
<div className="main-filter">

  <form onSubmit={this.addItem}>
    <div class="main-header__left">
      <div>
        <label class="start-timestamp">Start Timestamp: </label>
        <input type="text" />
      </div>
      <div>
        <label className="source-ip-address">Source IP Address: </label>
        <input type="text" name="source" />
      </div>
      <div>
        <label className="service">Service Name: </label>
        <input type="text" name="service" />
      </div>
    </div>

    <div class="main-header__right">
      <div>
        <label className="end-timestamp">End Timestamp: </label>
        <input type="text" />
      </div>
      <div>
        <label className="destinatin-ip-ddress">Destination IP Address:</label>
        <input type="text" name="destination" />
      </div>

      <div>
        <label></label>
        <button type="submit" class="filter-button1">Apply Filters</button>
      </div>
      
    </div>
    
  </form>
</div>