我是响应式设计的新手,我正努力解决以下问题。

我正在创建一个搜索/过滤器栏,该栏需要每行具有五个过滤器,边缘的边距为1%,中间的边距为2%。我认为这很容易;如果我将滤镜的宽度设为18%,并给每个滤镜一个左右边界,则为20%×5 = 100%。不幸的是,这导致第五个过滤器转到下一行。

示例:https://jsfiddle.net/L3sd5qLo/



.search-bar {
  width: 100%;
  background-color: #aaa;
}
.search-bar__filter {
  margin: 0 1%;
  width: 18%;
}

<div class="search-bar">
  <select id="filter1" class="search-bar__filter">
    <option>Option 1</option>
    <option>Option 2</option>
    <option>Option 3</option>
  </select>
  <select id="filter2" class="search-bar__filter">
    <option>Option 1</option>
    <option>Option 2</option>
    <option>Option 3</option>
  </select>
  <select id="filter3" class="search-bar__filter">
    <option>Option 1</option>
    <option>Option 2</option>
    <option>Option 3</option>
  </select>
  <select id="filter4" class="search-bar__filter">
    <option>Option 1</option>
    <option>Option 2</option>
    <option>Option 3</option>
  </select>
  <select id="filter5" class="search-bar__filter">
    <option>Option 1</option>
    <option>Option 2</option>
    <option>Option 3</option>
  </select>
  <select id="filter6" class="search-bar__filter">
    <option>Option 1</option>
    <option>Option 2</option>
    <option>Option 3</option>
  </select>
</div>





编辑我想表明第六项应该转到新行,前五个子项占据行宽的100%。

最佳答案

最简单的方法是将float添加到.search-bar__filter:

.search-bar__filter {
 margin: 0 1%;
 width: 18%;
 float:left;
}

09-17 01:17