使我的搜索框更具移动友好性

时间:2019-02-27 23:32:53

标签: css elasticsearch mobile

现在,它在桌面设备上看起来不错,但对于移动设备来说,它只是页面中间的浮动内容,当您尝试输入时,您看不到正在输入的内容。

The image you see here is for desktop

On mobile it's just a little blob in the center

桌面位于右上方,以供参考。为什么它会在移动设备上发展到中间位置?

    // Search
.block-search {
    display: inline-block;
    .label {
        display: inline-block;
        float: none;
    }
    input {
        border-radius: 50px;
        height: 40px;
        padding-left: 20px;
        padding-right: 44px;
    }
    .control {
        border-top: 0;
        clear:none;
        margin: 0;
        padding: 0;
    }
    .action.search {
        background: #5a5a5a;
        border-radius: 50px;
        height: 34px;
        right: 4px;
        top: 3px;
        width: 34px;
    }
    .search-autocomplete ul:not(:empty) {
        border-color: #c2c2c2;
        border-top: 1px solid #c2c2c2;
    }
    .search-autocomplete ul {
        li {
            border-color: #c2c2c2;
            &:hover {
                background-color: #e5e5e5;
            }
            .amount {
                color: #444;
            }
        }
        .selected {
            background-color: #e5e5e5;
        }
    }
}

1 个答案:

答案 0 :(得分:1)

在2019年,使用float进行布局既不时髦也不实际。相反,您应该使用flexbox或(如果您的设计需要更复杂的布局)CSS Grid。您想使布局尽可能“高”起来。在父容器中设置规则,让子流随心所欲。

这是一个简单的例子。

  • 设置父容器的宽度,该宽度不能大于视口的宽度
  • 将所有header内容居中
  • 尽量不要在元素上设置显式height。而是使用填充。这将在不同的用户调整字体大小时很好地缩放。

html, body { margin: 0; }

.container {
  width: 960px;
  max-width: 100vw;
}

header {
  padding: 0.5em 0;
  display: flex;
  justify-content: center;
}

.searchBox {
  border: 1px solid gray;
  border-radius: 20px;
  padding: .5em 1em;
}
<div class="container">
  <header>
    <input type="search" class="searchBox" placeholder="Search…">  
  </header>  
</div>

jsFiddle